87 lines
4 KiB
Bash
87 lines
4 KiB
Bash
# JoeyLib toolchain environment.
|
|
#
|
|
# Source this file before invoking make:
|
|
# source toolchains/env.sh
|
|
#
|
|
# All build commands resolve cross-compilers and assemblers exclusively
|
|
# from toolchains/ regardless of what is installed on the host. The
|
|
# Makefiles reference these variables by name; never hardcode paths.
|
|
|
|
JOEY_TOOLCHAINS="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
export JOEY_TOOLCHAINS
|
|
|
|
# ------------------------------------------------------------------------
|
|
# IIgs
|
|
#
|
|
# Two separate trees:
|
|
# - toolchains/iigs/gg-tools/bin/ Unix host binaries (iix, dumpobj, ...)
|
|
# built from the GoldenGate source repo.
|
|
# - toolchains/iigs/goldengate/ The IIgs filesystem iix emulates.
|
|
# $GOLDEN_GATE points here.
|
|
#
|
|
# iix is the host-side command shell that runs ORCA tools (cc, Linker,
|
|
# Asm65816, ...) via 65816 emulation against the $GOLDEN_GATE tree.
|
|
# ------------------------------------------------------------------------
|
|
|
|
export GOLDEN_GATE="${JOEY_TOOLCHAINS}/iigs/goldengate"
|
|
export ORCA_ROOT="${GOLDEN_GATE}"
|
|
|
|
export IIGS_AS="${JOEY_TOOLCHAINS}/iigs/merlin32/bin/merlin32"
|
|
export IIGS_IIX="${JOEY_TOOLCHAINS}/iigs/gg-tools/bin/iix"
|
|
export IIGS_BUILD="${JOEY_TOOLCHAINS}/iigs/iix-build.sh"
|
|
export IIGS_INCLUDE_SHIM="${JOEY_TOOLCHAINS}/iigs/include-shim"
|
|
# Kept as an alias for IIGS_IIX so the top-level Makefile's HAVE_IIGS
|
|
# availability probe (`[ -x $IIGS_CC ]`) works with the common pattern
|
|
# used for the other platforms.
|
|
export IIGS_CC="${IIGS_IIX}"
|
|
|
|
# ------------------------------------------------------------------------
|
|
# Amiga
|
|
# ------------------------------------------------------------------------
|
|
|
|
export AMIGA_PREFIX="${JOEY_TOOLCHAINS}/amiga/gcc"
|
|
export AMIGA_CC="${AMIGA_PREFIX}/bin/m68k-amigaos-gcc"
|
|
export AMIGA_AR="${AMIGA_PREFIX}/bin/m68k-amigaos-ar"
|
|
export AMIGA_LD="${AMIGA_PREFIX}/bin/m68k-amigaos-ld"
|
|
# vasm is invoked only for ptplayer.asm (third-party Devpac/vasm
|
|
# syntax). JoeyLib's own .s files are GAS syntax and go through
|
|
# AMIGA_CC -> m68k-amigaos-as (binutils, GPL) instead.
|
|
export AMIGA_AS="${JOEY_TOOLCHAINS}/amiga/vasm/bin/vasmm68k_mot"
|
|
export AMIGA_NDK="${AMIGA_PREFIX}/m68k-amigaos/sys-include"
|
|
export AMIGA_PTPLAYER="${JOEY_TOOLCHAINS}/amiga/ptplayer"
|
|
|
|
# ------------------------------------------------------------------------
|
|
# Atari ST
|
|
# ------------------------------------------------------------------------
|
|
|
|
export ST_PREFIX="${JOEY_TOOLCHAINS}/atarist/gcc"
|
|
export ST_CC="${ST_PREFIX}/bin/m68k-atari-mint-gcc"
|
|
export ST_AR="${ST_PREFIX}/bin/m68k-atari-mint-ar"
|
|
export ST_LD="${ST_PREFIX}/bin/m68k-atari-mint-ld"
|
|
# Atari ST .s files are GAS syntax and assembled via ST_CC ->
|
|
# m68k-atari-mint-as (binutils, GPL). No vasm dependency.
|
|
|
|
# ------------------------------------------------------------------------
|
|
# DOS
|
|
# ------------------------------------------------------------------------
|
|
|
|
export DOS_PREFIX="${JOEY_TOOLCHAINS}/dos/djgpp"
|
|
export DOS_CC="${DOS_PREFIX}/bin/i586-pc-msdosdjgpp-gcc"
|
|
export DOS_AR="${DOS_PREFIX}/bin/i586-pc-msdosdjgpp-ar"
|
|
export DOS_LD="${DOS_PREFIX}/bin/i586-pc-msdosdjgpp-ld"
|
|
# DJGPP's DOS-target utilities live under the i586-...-msdosdjgpp
|
|
# sysroot bin, not the host bin that holds the cross-gcc.
|
|
export DOS_STUBEDIT="${DOS_PREFIX}/i586-pc-msdosdjgpp/bin/stubedit"
|
|
export DOS_STUBIFY="${DOS_PREFIX}/i586-pc-msdosdjgpp/bin/stubify"
|
|
export DOS_EXE2COFF="${DOS_PREFIX}/i586-pc-msdosdjgpp/bin/exe2coff"
|
|
export DOS_AS="${JOEY_TOOLCHAINS}/dos/nasm/bin/nasm"
|
|
export DOS_CWSDPMI="${JOEY_TOOLCHAINS}/dos/cwsdpmi/bin/bin"
|
|
export DOS_CWSDSTUB="${DOS_CWSDPMI}/CWSDSTUB.EXE"
|
|
export DOS_EMBED_DPMI="${JOEY_TOOLCHAINS}/dos/embed-dpmi.sh"
|
|
|
|
# ------------------------------------------------------------------------
|
|
# PATH augmentation (in case sub-tools shell out unprefixed names)
|
|
# ------------------------------------------------------------------------
|
|
|
|
PATH="${AMIGA_PREFIX}/bin:${ST_PREFIX}/bin:${DOS_PREFIX}/bin:${JOEY_TOOLCHAINS}/iigs/merlin32/bin:${JOEY_TOOLCHAINS}/amiga/vasm/bin:${JOEY_TOOLCHAINS}/dos/nasm/bin:${PATH}"
|
|
export PATH
|