% Copyright (C) 1994, Digital Equipment Corporation
% All rights reserved.
% See the file COPYRIGHT for a full description.
%
% Last modified on Fri Aug 23 00:14:14 PDT 1996 by najork
%      modified on Mon Jun 19 08:07:53 PDT 1995 by kalsow
%

%
% Please comment out the sections below that you don't want built.
% Note that some of the earlier sections are required when building
% later sections.
%

> "config.tmpl" in
  write("option(\"optimization\",\"T\")", CR)
end

BOOTSTRAP = lookup("BOOTSTRAP","")

if BOOTSTRAP
  m3build = [path() & SL & ".." & SL & "boot-" & TARGET & SL &"m3build" & SL &
      TARGET & SL & "m3build","-T",path() & SL & ".." & SL & "m3config" & SL &
      "src"]
  m3ship = [path() & SL & ".." & SL & "boot-" & TARGET & SL & "m3ship" & SL &
      TARGET & SL & "m3ship","-T",path() & SL & ".." & SL & "m3config" & SL &
      "src"]
else
  m3build = ["m3build"]
  m3ship = ["m3ship"]
end

m3build += "-F"
m3build += path() & SL & ".." & SL & TARGET & SL & "config.tmpl"

EXPORTPATH = lookup("EXPORTPATH","")
EXPORTRPATH = lookup("EXPORTRPATH","")

if EXPORTRPATH
  EXPORTPATH = path() & SL & ".." & SL & EXPORTRPATH
end

if EXPORTPATH
  >> "config.tmpl" in
    write("TARGET_BIN_INSTALL = BIN_INSTALL", CR)
    write("TARGET_LIB_INSTALL = LIB_INSTALL", CR)
    write("TARGET_DOC_INSTALL = DOC_INSTALL", CR)
    write("TARGET_PKG_INSTALL = PKG_INSTALL", CR)
    write("TARGET_EMACS_INSTALL = EMACS_INSTALL", CR)
    write("TARGET_MAN_INSTALL = MAN_INSTALL", CR)
    write("TARGET_HTML_INSTALL = HTML_INSTALL", CR)
    write("TARGET_BIN_USE = BIN_USE", CR)
    write("TARGET_LIB_USE = LIB_USE", CR)
    write("TARGET_PKG_USE = PKG_USE", CR)

    write("BIN_INSTALL = \"" & EXPORTPATH & "\" & BIN_INSTALL", CR)
    write("LIB_INSTALL = \"" & EXPORTPATH & "\" & LIB_INSTALL", CR)
    write("DOC_INSTALL = \"" & EXPORTPATH & "\" & DOC_INSTALL", CR)
    write("PKG_INSTALL = \"" & EXPORTPATH & "\" & PKG_INSTALL", CR)
    write("EMACS_INSTALL = \"" & EXPORTPATH & "\" & EMACS_INSTALL", CR)
    write("MAN_INSTALL = \"" & EXPORTPATH & "\" & MAN_INSTALL", CR)
    write("HTML_INSTALL = \"" & EXPORTPATH & "\" & HTML_INSTALL", CR)
    write("BIN_USE = \"" & EXPORTPATH & "\" & BIN_USE", CR)
    write("LIB_USE = \"" & EXPORTPATH & "\" & LIB_USE", CR)
    write("PKG_USE = \"" & EXPORTPATH & "\" & PKG_USE", CR)
  end
end

readonly proc BuildChunk (dir,pkg) is
  local ret = 0

  if equal(OS_TYPE,"WIN32") dir = p2w(dir) end

  local wd = ".." & SL & dir & SL & pkg

  if not stale (pkg, pkg)
    % we've already built this chunk
    write ("-- ", pkg, " done --", CR)
    %ret = exec ([ "rm", "-rf", BUILD_DIR] , [], wd)
    return
  end

  % let'm know what we're doing
  write (CR, "---------- building ", pkg," in ",dir," ----------", CR,CR)

  % build and ship the chunk
  write(m3build, CR)
  ret = exec (m3build, [], wd)
  if not equal(ret, 0) error ("m3build failed with error code: ", ret) end
  write(m3ship, CR)
  ret = exec (m3ship, [], wd)
  if not equal(ret, 0) error ("m3ship failed with error code: ", ret) end

  % If you don't want to delete derived objects as soon as they are
  % installed, comment out the following line.
  ret = exec ([ "rm", "-rf", BUILD_DIR] , [], wd)

  % remember that we've built this chunk
  ret = exec (["touch", pkg])
  if not equal(ret, 0) error ("touch failed with error code: ", ret) end
end


%--- m3cc --- utility -------------------------------------------------
% m3cc is a code generation backend based on gcc, called by the compiler
% requires:
BuildChunk("language/modula3/m3compiler","m3cc")

%--- mtex --- utility -------------------------------------------------
% mtex is a quake function that is used to produce
% both troff man pages and HTML pages from the same source
% requires:
BuildChunk("text","mtex")

%--- m3core --- library -------------------------------------------------
% m3core is the minimal base library.  It must be built before any others.
% requires:
BuildChunk("libs","m3core")

%--- libm3 --- library -------------------------------------------------
% libm3 is the library that most others need.
% requires: m3core
BuildChunk("libs","libm3")

%--- sil --- demo -------------------------------------------------
% Sil is a simple drawing program that runs on Windows/NT.  It's included
% in the distribution as a sample of native Windows programming in Modula-3.
% requires: libm3
if equal (OS_TYPE, "WIN32")
 BuildChunk("graphics","sil")
end

%--- m3middle --- library -------------------------------------------------
% the Modula-3 compiler's IL definition
% requires: libm3
BuildChunk("language/modula3/m3compiler","m3middle")
%-- built as part of the bootstrap process

%--- m3front --- library -------------------------------------------------
% the Modula-3 compiler front-end
% requires: m3middle
BuildChunk("language/modula3/m3compiler","m3front")
%-- built as part of the bootstrap process

%--- m3linker --- library -------------------------------------------------
% the Modula-3 prelinker
% requires: m3middle
BuildChunk("language/modula3/m3compiler","m3linker")
%-- built as part of the bootstrap process

%--- m3objfile --- library -------------------------------------------------
% the Modula-3 object file writers
% requires: m3middle
if equal(TARGET,"LINUXELF") or equal(TARGET,"NT386")
  BuildChunk("language/modula3/m3compiler","m3objfile")
end

%--- m3back --- library -------------------------------------------------
% the Windows/NT x86 back-end
% requires: m3middle, m3objfile
if equal(TARGET,"LINUXELF") or equal(TARGET,"NT386")
  BuildChunk("language/modula3/m3compiler","m3back")
end

%--- m3driver --- utility -------------------------------------------------
% the Modula-3 compiler driver
% requires: m3linker, m3front, m3middle, libm3
BuildChunk("language/modula3/m3compiler","m3driver")
%-- built as part of the bootstrap process

%--- m3staloneback --- utility -----------------------------------------------
% an standalone back-end program like m3cc that uses m3back
% requires: m3back
% BuildChunk("language/modula3/m3compiler","m3staloneback")

%--- m3loader --- utility -------------------------------------------------
% an experimental dynamic loader for Windows/NT
% requires: libm3, m3middle
% if equal (OS_TYPE, "WIN32")
%   BuildChunk("language/modula3/m3compiler","m3loader")
% end

%--- m3quake --- library --------------------------------------------------
% the quake interpreter used by m3build
% requires: libm3, m3middle
BuildChunk("language","m3quake")
%-- built as part of the bootstrap process

%--- m3templates --- library --------------------------------------------------
% quake builtin functions for m3build
% requires: libm3, m3quake, m3middle, m3driver
BuildChunk("language/modula3/m3compiler","m3templates")
%-- built as part of the bootstrap process

%--- m3config --- library --------------------------------------------------
% quake templates and default bin, lib, pkg... locations for m3build
% requires: libm3
BuildChunk(".","m3config")
%-- built as part of the bootstrap process

%--- m3build --- utility ------------------------------------------------
% the modula-3 compiler
% requires: libm3, m3quake
BuildChunk("language/modula3/m3compiler","m3build")
%-- built as part of the bootstrap process
 
%--- m3ship --- utility ------------------------------------------------
% installs modula-3 packages
% requires: libm3, m3quake
BuildChunk("language/modula3/m3compiler","m3ship")
%-- built as part of the bootstrap process
 
%--- cg-burs --- utility -------------------------------------------------
% an experimental Modula-3 back-end that uses BURS
% requires: m3middle
% BuildChunk("language/modula3/m3compiler","cg-burs")  %-- experimental

%--- coverage --- utility program & library ----------------------------------
% a line-based coverage analyzer/profiler
% requires: libm3
if equal (OS_TYPE, "POSIX")
  BuildChunk("language/modula3/m3tools","coverage")
end

%--- m3gdb --- utility -------------------------------------------------
% m3gdb is a modula3 aware debugger based on gdb
% requires:
BuildChunk("language/modula3/m3tools","m3gdb")

%--- pp --- utility -------------------------------------------------
% a Modula-3 pretty-printer
% requires: libm3
if equal (OS_TYPE, "POSIX")
  BuildChunk("language/modula3/m3tools","pp")
end

%--- m3bundle --- utility -------------------------------------------------
% a program that captures binary data from files as Modula-3 source,
%   needed to build the formsvbt library
% requires: libm3
BuildChunk("language/modula3/m3tools","m3bundle")

%--- m3totex --- utility -------------------------------------------------
% a program that wraps Modula-3 source in enough TeX to make it printable
% requires: libm3, m3bundle
BuildChunk("language/modula3/m3tools","m3totex")

%--- set --- library ------------------------------------------------------
% a simple, generic Set interface.
% requires: libm3
BuildChunk("libs","set")

%--- digraph --- library ------------------------------------------------------
% a directed graph type, generic over the types labeling nodes and edges
% requires: libm3
BuildChunk("libs","digraph")

%--- table-list --- library ---------------------------------------------------
% an association-list-based, generic implementation of "Table.T"
% requires: libm3
BuildChunk("libs","table-list")

%--- realgeometry --- library -----------------------------------------------
% a version of the geometry package (Point, Rect, Path, ...)
%   with REAL-valued coordinates
% requires: libm3
BuildChunk("libs","realgeometry")

%--- parseparams --- library -----------------------------------------------
% a library that helps parse command line arguments.
% requires: libm3
BuildChunk("libs","parseparams")

%--- slisp --- library -----------------------------------------------
% a library containing a small Lisp interpreter
% requires: libm3
BuildChunk("language","slisp")

%--- tempfiles --- library -----------------------------------------------
% a library to build tempfiles
% requires: libm3
BuildChunk("libs","tempfiles")

%--- m3where --- utility ------------------------------------------------
% search for modula-3 packages and files
% requires: libm3, m3quake, tempfiles
BuildChunk ("language/modula3/m3compiler","m3where")
 
%--- tcp --- library -------------------------------------------------
% tcp implements a Modula-3 interface to TCP sockets.  It is used
%   by the Trestle window system and network objects.
% requires: libm3
BuildChunk("network/tcplibs","tcp")

%--- web --- library -------------------------------------------------
% a library for retrieving documents from the World Wide Web using an
%   http proxy server.
% requires: tcp
BuildChunk("network/www","web")

%--- netobj --- library -------------------------------------------
% the network objects runtime library, needed by most distributed applications
% requires: tcp
BuildChunk("network/netobjects","netobj")

%--- netobjd --- utility -------------------------------------------
% the network objects daemon, needed by all programs using network objects
% requires: netobj
BuildChunk("network/netobjects","netobjd")

%--- m3tk --- library -------------------------------------------
% a (large) Modula-3 abstract syntax tree (AST) toolkit, needed by stubgen
% requires: libm3
BuildChunk("language/modula3/m3tools","m3tk")

%--- stubgen --- utility -------------------------------------------
% the network objects stub generator, needed by programs using network objects
% requires: m3tk
BuildChunk("network/netobjects","stubgen")

%--- stable --- library ---------------------------------------------
% A library providing log-based persistent objects
% requires: libm3
BuildChunk("database/stableobjects","stable")

%--- stablegen --- utility -------------------------------------------
% a stub generator to make the use of the "stable" library much easier
% requires: m3tk, stable
BuildChunk("database/stableobjects","stablegen")

%--- sharedboard --- prototype -------------------------------------------
% a prototype shared whiteboard
% requires: stable, stablegen
% BuildChunk("graphics","sharedboard")

%--- X11 --- library -------------------------------------------------
% X11 implements a Modula-3 interface to the X library.  It is used
%   by the Testle window system.
% requires: libm3
if PLATFORM_SUPPORTS_X
  BuildChunk("graphics/gr-libs","X11")
end

%--- PEX --- library -------------------------------------------------
% PEX implements a Modula-3 interface to the PEX 3D graphics library.
%   It is used by all graphical 3D applications
% requires: X11 and a host PEX implementation
if PLATFORM_SUPPORTS_DECPEX
  BuildChunk("graphics/gr-libs","PEX")
end

%--- opengl --- library -------------------------------------------------
% opengl implements a Modula-3 interface to the OpenGL 3D graphics library.
%   It is used by all graphical 3D applications
% requires: X11 and a host OpenGL implementation
if PLATFORM_SUPPORTS_OPENGL
  BuildChunk("graphics/gr-libs","opengl")
end

%--- motif --- library -------------------------------------------------
% motif implements a Modula-3 interface to the X/Motif library.
% requires: X11
if PLATFORM_SUPPORTS_MOTIF
  BuildChunk("graphics/gr-libs","motif")
end

%--- tetris --- game -------------------------------------------------
% a Modula-3 version of Tetris
% requires: X11
if PLATFORM_SUPPORTS_X
  BuildChunk("graphics/games","tetris")
end

%--- columns --- game -------------------------------------------------
% a Modula-3 version of the PC game, columns
% requires: X11
if PLATFORM_SUPPORTS_X
  BuildChunk("graphics/games","columns")
end

%--- ui --- library -------------------------------------------------
% ui implements the Trestle window-system toolkit.  It is used
%   by most graphical applications.
% requires: X11 and tcp on POSIX; libm3 on WIN32
% Note: The WIN32 version is still VERY buggy
BuildChunk("graphics/gr-libs","ui")

%--- bicycle --- library -------------------------------------------------
% bicycle is a library of playing card images.
% requires: ui
BuildChunk("graphics/games","bicycle")

%--- solitaire --- game -------------------------------------------------
% a Modula-3 version of SeaHaven towers
% requires: bicycle
BuildChunk("graphics/games","solitaire")

%--- badbricks --- game -------------------------------------------------
% a Modula-3 game similar to minesweeper, inspired by the crumbling
%     facade of SRC's building.
% requires: ui
BuildChunk("graphics/games","badbricks")

%--- m3scan --- library -------------------------------------------------
% a simple Modula-3 scanner, needed by m3tohtml and m3browser
% requires: libm3, tcp
BuildChunk("language/modula3/m3tools","m3scan")

%--- m3tohtml --- utility -------------------------------------------------
% a program to convert batches of Modula-3 source to interconnected HTML
% requires: libm3, m3scan
BuildChunk("language/modula3/m3tools","m3tohtml")

%--- m3markup --- library --------------------------------------------------
% a library to parse Modula-3 source code and insert HTML markup
% requires: libm3
BuildChunk("language/modula3/m3tools","m3markup")

%--- m3tohtmlf --- utility -------------------------------------------------
% a program to convert one Modula-3 source to an HTML file
% requires: libm3, m3scan, m3markup
BuildChunk("language/modula3/m3tools","m3tohtmlf")

%--- m3browser --- utility -------------------------------------------------
% an HTTP server that provides WWW browsing of the installed Modula-3 system
% requires: libm3, m3scan, m3markup
if equal (OS_TYPE, "POSIX")
  BuildChunk("language/modula3/m3tools","m3browser")
end

%--- tcl --- library -------------------------------------------------
% a thin Modula-3 veneer on the TCL library (version 6.2).
% requires: libm3  (TCL is required to build a shared library)
% BuildChunk("language","tcl")

%--- dps --- library -------------------------------------------------
% a thin Modula-3 veneer on the display Postscript extensions to X
% requires: X11, display PostScript, pswrap
% BuildChunk("graphics/displayps","dps")  
%-- many sites do not have the X display postscript extensions

%--- dpsslides --- utility -------------------------------------------------
% a program to display postscript slides in X
% requires: dps
% BuildChunk("graphics/displayps","dpsslides")

%--- vbtkit --- library -------------------------------------------------
% a large collection of useful window widgets, needed by many of the
%   following libraries and programs.
% requires: ui
BuildChunk("graphics/gr-libs","vbtkit")

%--- fours --- game -------------------------------------------------
% a collection of Modula-3 variants of the PC game, tetris.
% requires: vbtkit
BuildChunk("graphics/games","fours")

%--- showheap --- utility -------------------------------------------------
% a program to graphically display in real-time the state of each heap page.
% requires: vbtkit
if equal (OS_TYPE, "POSIX")
  BuildChunk("language/modula3/m3tools","showheap")
end

%--- recordheap --- utility -------------------------------------------------
% a program to capture a "showheap" trace
% requires: 
if equal (OS_TYPE, "POSIX")
  BuildChunk("language/modula3/m3tools","recordheap")
end

%--- replayheap --- utility -------------------------------------------------
% a program to graphically display the log captured by "recordheap"
% requires: vbtkit
if equal (OS_TYPE, "POSIX")
  BuildChunk("language/modula3/m3tools","replayheap")
end

%--- shownew --- utility -------------------------------------------------
% a program to graphically display in real-time per-type allocations
% requires: vbtkit
if equal (OS_TYPE, "POSIX")
  BuildChunk("language/modula3/m3tools","shownew")
end

%--- showthread --- utility -------------------------------------------------
% a program to graphically display in real-time the state of each thread.
% requires: vbtkit
if equal (OS_TYPE, "POSIX")
  BuildChunk("language/modula3/m3tools","showthread")
end

%--- images --- library -------------------------------------------------
% support for displaying bitmap images
% requires: ui
BuildChunk("graphics/gr-libs","images")

%--- jvideo --- library -------------------------------------------------
% a low-level interface to the J-video hardware, needed by videovbt
% requires: tcp
BuildChunk("graphics/gr-libs","jvideo")

%--- videovbt --- library -------------------------------------------------
% a window widget that displays live video images
% requires: jvideo, ui
BuildChunk("graphics/gr-libs","videovbt")

%--- formsvbtpixmaps --- library -------------------------------------------
% misc. bitmaps, cursors and stuff used by formsvbt
% requires: libm3, m3bundle
BuildChunk("graphics/forms","formsvbtpixmaps")

%--- formsvbt --- library -------------------------------------------------
% a high-level language based on S-expressions that makes it easy
% to assemble VBTs (windows) using the TeX metaphors of boxes and
% glue.
% requires: vbtkit, videovbt, formsvbtpixmaps, web
BuildChunk("graphics/forms","formsvbt")

%--- formsedit --- utility -------------------------------------------------
% a 1-1/2 view GUI editor for FormsVBT expressions
% requires: formsvbt
BuildChunk("graphics/forms","formsedit")

%--- fisheye --- demo -------------------------------------------------
% a demo of "fisheye" views for graph browsing
% requires: formsvbt
BuildChunk("graphics/gr-libs","fisheye")

%--- calculator --- demo -------------------------------------------------
% a 10-key calculator using FormsVBT
% requires: formsvbt
BuildChunk("graphics/games","calculator")

%--- cube --- demo -------------------------------------------------
% a rotating cube
% requires: formsvbt
BuildChunk("graphics/games","cube")

%--- codeview --- library -------------------------------------------
% support for animated views of source code, needed by zeus
% requires: formsvbt
BuildChunk("graphics/animation","codeview")

%--- rehearsecode --- utility -------------------------------------------
% a program to manually test drive source code animations
% requires: codeview
BuildChunk("graphics/animation","rehearsecode")

%--- mg --- library -------------------------------------------
% the low-level animation support
% requires: formsvbt
BuildChunk("graphics/animation","mg")

%--- mgkit --- library -------------------------------------------
% a collection of easier-to-use animation widgets
% requires: m3
BuildChunk("graphics/animation","mgkit")

%--- anim3D --- library -------------------------------------------
% a collection of 3D animation widgets
% requires: parseparams, vbtkit, and one of the following:
%    X11 and PEX
%    X11 and OpenGL
%    soon: OpenGL and Windows NT
BuildChunk("graphics/animation","anim3D")

%--- synloc --- library -------------------------------------------
% a low-level library used by the Obliq interpreter
% requires: libm3
BuildChunk("language/parsing/metasyntax","synloc")

%--- synex --- library -------------------------------------------
% a low-level "syntax extension" library used by the Obliq interpreter
% requires: synloc
BuildChunk("language/parsing/metasyntax","synex")

%--- metasyn --- library -------------------------------------------
% a low-level library used by the Obliq interpreter
% requires: synex
BuildChunk("language/parsing/metasyntax","metasyn")

%--- obliqrt --- library -------------------------------------------
% the Obliq interpreter's runtime library
% requires: synloc, netobj
BuildChunk("language/m3obliq","obliqrt")

%--- obliqlibm3 --- library -------------------------------------------
% the Obliq interpreter's hooks to the libm3 library
% requires: obliqrt, libm3
BuildChunk("language/m3obliq","obliqlibm3")

%--- obliqlibui --- library -------------------------------------------
% the Obliq interpreter's hooks to the ui library
% requires: obliqrt, formsvbt
BuildChunk("language/m3obliq","obliqlibui")

%--- obliqlibanim --- library -------------------------------------------
% the Obliq interpreter's hooks to the animation libraries
% requires: obliqrt, mgkit
BuildChunk("language/m3obliq","obliqlibanim")

%--- obliqparse --- library -------------------------------------------
% the Obliq interpreter's parser
% requires: obliqrt
BuildChunk("language/m3obliq","obliqparse")

%--- obliqprint --- library -------------------------------------------
% the Obliq interpreter's value printer
% requires: obliqrt
BuildChunk("language/m3obliq","obliqprint")

%--- obliq --- library -------------------------------------------
% the Obliq interpreter
% requires: obliqparse, obliqprint, metasyn
BuildChunk("language/m3obliq","obliq")

%--- obliqlib3D --- library -------------------------------------------
% the Obliq interpreter's hooks to the 3D animation libraries
% requires: anim3D, obliqlibanim, obliq
BuildChunk("language/m3obliq","obliqlib3D")

%--- obliqbinmin --- utility -------------------------------------------
% the Obliq interpreter with minimal runtime hooks
% requires: obliq
BuildChunk("language/m3obliq","obliqbinmin")

%--- obliqbinstd --- utility -------------------------------------------
% the Obliq interpreter with the "standard" runtime hooks
% requires: obliq, obliqlibm3
BuildChunk("language/m3obliq","obliqbinstd")

%--- obliqbinui --- utility -------------------------------------------
% the Obliq interpreter with ui support
% requires: obliq, obliqlibm3, obliqlibui
BuildChunk("language/m3obliq","obliqbinui")

%--- obliqbinanim --- utility -------------------------------------------
% the Obliq interpreter with full animation support
% requires: obliq, obliqlibm3, obliqlibui, obliqlibanim
BuildChunk("language/m3obliq","obliqbinanim")

%--- obliqbin3D --- utility -------------------------------------------
% the Obliq interpreter with full 3D animation support
% requires: obliq, obliqlibm3, obliqlibui, obliqlibanim, obliqlib3D
BuildChunk("language/m3obliq","obliqbin3D")

%--- obliqsrvstd --- utility -------------------------------------------
% an Obliq "server" with the standard runtime hooks
% requires: obliq, obliqlibm3
BuildChunk("language/m3obliq","obliqsrvstd")

%--- obliqsrvui --- utility -------------------------------------------
% an Obliq "server" with ui support
% requires: obliq, obliqlibm3, obliqlibui
BuildChunk("language/m3obliq","obliqsrvui")

%--- m3zume --- utility -------------------------------------------
% the "interesting event" preprocessor needed by zeus
% requires: formsvbt, stubgen
BuildChunk("graphics/animation","m3zume")

%--- zeus --- library -------------------------------------------
% the algorithm animation toolkit
% requires: netobj, codeview, mgkit, m3zume, netobj, stubgen
BuildChunk("graphics/animation","zeus")

%--- mentor --- demo -------------------------------------------------
% a collection of algoritm animations
% requires: zeus, obliqbinanim
BuildChunk("graphics/animation","mentor")

%--- smalldb --- library -------------------------------------------
% an in-memory database library, used by the package tools
% requires: libm3
if equal (OS_TYPE, "POSIX")
  BuildChunk("database","smalldb")
end

%
% The "package tools" are a collection of user-level commands
% that enable sharing of software.  They support a simple
% directory-based check-in/check-out model.  They are not
% essential to the Modula-3 distribution, but are quite
% useful for large-scale software development.
%
% The current default is not to build the package tools:
%   pkgobj, pkgtool, pkgsrv, pkgq, pkgfprint.
%

%
%--- pkgobj --- library -------------------------------------------
% the low-level library support for the package tools
% requires: smalldb, netobj
% BuildChunk("network/pkgserver","pkgobj")

%--- pkgtool --- utility -------------------------------------------
% the client program(s) to access the package tools
% requires: pkgobj
% BuildChunk("network/pkgserver","pkgtool")

%--- pkgsrv --- utility -------------------------------------------
% the server daemon required to use the package tools
% requires: pkgobj
% BuildChunk("network/pkgserver","pkgsrv")

%--- pkgq --- utility -------------------------------------------
% the client program(s) needed to manage the package tools
% requires: pkgobj
% BuildChunk("network/pkgserver","pkgq")

%--- pkgfprint --- utility -------------------------------------------
% an internal utility program needed by the package tools
% requires: pkgobj
% BuildChunk("network/pkgserver","pkgfprint")

%--- siphontools --- utility -------------------------------------------
% the program(s) needed to manage distributed instances of the package tools
% requires: pkgobj
%
% !!! must be built by hand with make
%
%## BuildChunk ("siphontools")



%--- visualobliq --- demo -------------------------------------------
% a prototype of an easy-to-use distributed programming environment
% requires: formsvbt, obliq, obliqlibui, obliqlibm3
BuildChunk("language/m3obliq","visualobliq")

%--- voquery --- demo -------------------------------------------
% a simple query program used by vorun
% requires: formsvbt
BuildChunk("language/m3obliq","voquery")

%--- vorun --- demo -------------------------------------------
% a safe visual obliq interpreter suitable for embedding in the WWW.
% requires: obliqlibui, obliqlibm3, obliq, voquery, vorun
if equal (OS_TYPE, "POSIX")
  BuildChunk("language/m3obliq","vorun")
end

%--- vocgi --- demo -------------------------------------------
% an HTML/cgi gateway, required to embed Visual Obliq code in the WWW.
% requires: obliqlibm3, obliq
BuildChunk("language/m3obliq","vocgi")

%--- llscan --- utility -------------------------------------------
% a little mh program used by Postcard
% requires: 
if equal (OS_TYPE, "POSIX")
  BuildChunk("network/mail","llscan")
end

%--- postcard --- utility -------------------------------------------
% an integrated mail/news reader
% requires: formsvbt llscan mtex
if equal (OS_TYPE, "POSIX")
  BuildChunk("network/mail","postcard")
end

%--- gnuemacs --- library -------------------------------------------------
% a library of useful E-lisp code for Modual-3-mode in gnuemacs,
%   also a program to build Modula-3 tags
% requires: 
if equal (OS_TYPE, "POSIX")
  BuildChunk("language/modula3/m3tools","gnuemacs")
end

%--- webvbt --- library -------------------------------------------------
% a library for displaying HTML pages inside a VBT
% requires: formsvbt obliqparse obliqlibm3 obliqlibui obliqlibanim
BuildChunk("network/www","webvbt")

%--- webscape --- utility -------------------------------------------------
% a web browser with support for interactive content
% requires: webvbt
BuildChunk("network/www","webscape")

%--- deckscape --- utility -------------------------------------------------
% a web browser that uses a new metaphor: "decks" of web pages
% requires: webvbt
BuildChunk("network/www","deckscape")

%--- webcard --- utility -------------------------------------------------
% an integrated mail/news/web client
% requires: webvbt
if equal (OS_TYPE, "POSIX")
  BuildChunk("network/www","webcard")
end

%--- ocr --- library -------------------------------------------------
% interface to optical character recognition library (DECstation only)
% requires: libm3
BuildChunk("graphics/lecternpkg","ocr")

%--- lecterndoc --- library -------------------------------------------------
% "lectern" document format
% requires: libm3
BuildChunk("graphics/lecternpkg","lecterndoc")

%--- lecternclient --- library & utility --------------------------------------
% tool for sending requests to Lectern server
% requires: libm3, mtex
BuildChunk("graphics/lecternpkg","lecternclient")

%--- lecterntohtml --- utility ------------------------------------------------
% tool for sending requests to Lectern server
% requires: lecterndoc, mtex
if equal (OS_TYPE, "POSIX")
  BuildChunk("graphics/lecternpkg","lecterntohtml")
end

%--- lectern --- utility -------------------------------------------------
% the "virtual paper" document viewer
% requires: formsvbt, images, tempfiles, lecternclient
BuildChunk("graphics/lecternpkg","lectern")

%--- buildlectern --- utility -------------------------------------------------
% program for building lectern documents
% requires: ocr, lecterndoc, tempfiles, images, mtex
BuildChunk("graphics/lecternpkg","buildlectern")

%--- editlectern --- utility -------------------------------------------------
% program for editing lectern documents
% requires: formsvbt, lecternclient, lecterndoc
BuildChunk("graphics/lecternpkg","editlectern")

%--- tcpextras --- library -------------------------------------------------
% Additions to the tcp library
% requires: tcp
BuildChunk("network/tcplibs","tcpextras")

%--- http --- library -------------------------------------------------
% library for hypertext transfer protocol (HTTP)
% requires: tcpextras
BuildChunk("network/www","http")

%--- webcat --- utility -------------------------------------------------
% program that takes a URL and prints out the web document
% requires: http
BuildChunk("network/www","webcat")
