#!/bin/bash # This script wraps around m68k-eyebot-elf-gcc or m68k-eyebot-elf-g++, # providing a cross compiler interface similar to that provided by gcc for # native compilations. That is, both single-file compilations and # multiple-file builds are supported. # Written by Jason Foo # Modified by Stefan Schmitt # Last updated on Mon, 18 Aug 2003 12:34:37 +0800 # Define program names. CROSS_CC=${CROSS_CC:-m68k-eyebot-elf-gcc} OBJCOPY=m68k-eyebot-elf-objcopy SREC2BIN=srec2bin if test ! -z "$ROBIOS"; then CROSS_CPPFLAGS="$CROSS_CPPFLAGS -I$ROBIOS/include" CROSS_CFLAGS="$CROSS_CFLAGS" CROSS_LDFLAGS="$CROSS_LDFLAGS -L$ROBIOS/lib" fi RUN_CC="$CROSS_CC $CROSS_CPPFLAGS $CROSS_CFLAGS $*" # Abort with an error message if no files were specified. if test -z "$*" then echo "`basename $0`: no input files." exit 1 fi # Determine whether to perform linking or not. LINK=1 for ARGUMENT in $* do # No arguments after -- if test "$ARGUMENT" = -- ; then break fi # Don't link if -c option specified. if test "${ARGUMENT:0:2}" = -c then LINK=0 fi # Don't link if -S option specified. if test "${ARGUMENT:0:2}" = -S then LINK=0 fi # Don't link if -E option specified. if test "${ARGUMENT:0:2}" = -E then LINK=0 fi # Don't link if -M? option specified. if test "${ARGUMENT:0:2}" = -M then LINK=0 fi done if test $LINK = 1 then # Determine the output file name. OUTFILE=a.out THISTIME=0 for ARGUMENT in $* do if test $THISTIME = 1 then OUTFILE="$ARGUMENT" THISTIME=0 fi if test "${ARGUMENT:0:2}" = -o then OUTFILE="${ARGUMENT:2}" if test -z "$OUTFILE" then THISTIME=1 fi fi done RUN_CC="$RUN_CC $CROSS_LDFLAGS" # Run the compiler and convert or compress if necessary. case "$OUTFILE" in *.hx) ELF="${OUTFILE%.hx}.elf" $RUN_CC || exit mv "$OUTFILE" "$ELF" $OBJCOPY -O srec --gap-fill=0 "$ELF" "$OUTFILE.tmp" $SREC2BIN "$OUTFILE.tmp" "$OUTFILE" rm -f "$OUTFILE.tmp" ;; *.hex) ELF="${OUTFILE%.hex}.elf" $RUN_CC || exit mv "$OUTFILE" "$ELF" $OBJCOPY -O srec --gap-fill=0 "$ELF" "$OUTFILE" ;; a.out) ELF="$OUTFILE.elf" $RUN_CC || exit mv "$OUTFILE" "$ELF" $OBJCOPY -O srec --gap-fill=0 "$ELF" "$OUTFILE" ;; *) $RUN_CC || exit ;; esac else # Run the compiler. $RUN_CC || exit fi