#!/usr/bin/env bash
#
# run_magic.sh -- launch magic with its GUI straight from the build tree.
# Generated by configure from scripts/run_magic.sh.in.
#
# PURPOSE
#   Run the just-built magic *without* `make install`.  On first run it stages
#   ${builddir}/CAD_DIR (a tree of symlinks into the build and source trees) and
#   exports CAD_ROOT so magic finds its tech/glyphs/styles and Tcl runtime there.
#   Because it symlinks (never copies), a rebuild is picked up with no re-staging.
#
# USAGE
#   ./run_magic.sh [magic-args...]            # opens the default graphics device
#   ./run_magic.sh -d XR foo.mag              # pick a device / load a layout
#   ./run_magic.sh -T scmos                   # start with a given technology
#   (needs an X display; for batch/no-GUI use run_magicnull.sh instead.)
#
#   This launches the self-contained "magicexec" (a wish replacement linked
#   against this build's Tcl/Tk), so it needs no external wish.  If magic opens
#   its Tk console internally it uses $MAGIC_WISH (see below).
#
# ENVIRONMENT OVERRIDES (all optional; each wins over the baked default)
#   CAD_ROOT    reuse an alternate runtime tree instead of staging $builddir/CAD_DIR
#   MAGIC_WISH  wish for the Tk console (default: the configure-matched wish)
#   WISH TCLSH  wish/tclsh matching this build's Tcl/Tk (--with-tk / --with-tcl)
#   MAGIC_BUILDDIR MAGIC_SRCDIR  build/source tops (default: baked-in absolutes)
#   Inherited values are sanity-checked; problems print as stderr warnings.
#   See magic_run_common.sh for the authoritative list and defaults.
set -eu
here="$(cd "$(dirname "$0")" && pwd)"
. "$here/magic_run_common.sh"

magic_require_built
magic_stage

exec "$MAGIC_TCL/magicexec" -- "$@"
