# Retro Native Forth, Release 6
# Linux / BSD / BeOS Build System
# Also builds the native version
#
# This is  a lot longer and more verbose than the earlier scripts
# It also does a little more work than the eariler ones.
# Use this instead of BUILD.BAT if you can help it
# ----------------------------------------------------------------
echo -e Retro Native Forth, Release 6
echo -e Visit http://retro.tunes.org for updates
# ----------------------------------------------------------------
echo -e Creating symlinks \(SVGALIB LINUX\)
cd drivers/vgalinux
rm at blit clip cr emit rect vgadata key all
ln -s ../native/at
ln -s ../native/blit
ln -s ../native/clip
ln -s ../native/cr
ln -s ../native/emit
ln -s ../native/rect
ln -s ../native/vgadata
ln -s ../linux/key
cd ../..
# ----------------------------------------------------------------
echo -e Creating dictionary include files
echo -e :: Removing old files
  rm forth/code drivers/native/all drivers/linux/all drivers/beos/all

echo -e :: Creating Core Forth include files \(forth/code\)
  (cd forth/words ; find -name \* ! -name \*~ -printf '%%include "forth/words/%P"\n') >forth/code

echo -e :: Creating include for native \(drivers/native/all\)
  mv drivers/native/font drivers
  (cd drivers/native ; find -name \* ! -name \*~ -printf '%%include "drivers/native/%P"\n') >drivers/all
  mv drivers/all drivers/native
  mv drivers/font drivers/native

echo -e :: Creating include for Linux \(drivers/linux/all\)
  (cd drivers/linux ; find -name \* ! -name \*~ -printf '%%include "drivers/linux/%P"\n') >drivers/all
  mv drivers/all drivers/linux

echo -e :: Creating include for SVGALIB Linux \(drivers/vgalinux/all\)
  (cd drivers/vgalinux ; find -name \* ! -name \*~ -printf '%%include "drivers/vgalinux/%P"\n') >drivers/all
  mv drivers/all drivers/vgalinux

echo -e :: Creating include for BeOS 5 PE \(drivers/beos/all\)
  (cd drivers/beos ; find -name \* ! -name \*~ -printf '%%include "drivers/beos/%P"\n') >drivers/all
  mv drivers/all drivers/beos
# ----------------------------------------------------------------
echo -e Compiling Retro Native Forth, Release 6
echo -e :: Linux \(images/rf\)
  nasm -felf retro.asm -Dplatform.linux -llistings/linux.lst && ld retro.o -s -oimages/rf
echo -e :: SVGALIB Linux \(images/rf-vga\)
  nasm -felf retro.asm -Dplatform.vgalinux  -llistings/vgalinux.lst
  gcc retro.o -lvga -s -oimages/rf-vga
  chmod u+s images/rf-vga
echo -e :: BEOS 5 \(images/BeRetro\)
  nasm -felf retro.asm -Dplatform.beos -llistings/beos.lst && ld retro.o -s -oimages/BeRetro
echo -e :: Native \(images/retro.com\)
  nasm retro.asm -oretro -Dplatform.native -Dvesa -dXedit
  nasm loaders/dos/dos.asm -oimages/retro.com -DVESA
  nasm loaders/floppy/fat12.asm -oimages/fat12
# ----------------------------------------------------------------
echo -e Cleaning up...
rm retro.o retro
# ----------------------------------------------------------------
echo -e Everything is compiled and ready for use