+++ /dev/null
-#!/bin/sh
-#
-# Wrapper script for edg to simulate most common gcc flags
-#
-# This is not perfectly exact but should be good enough for most cases in
-# practice :)
-# @author: Matthias Braun
-#
-
-EDGFLAGS="-b vrfy=assert -b ra-chordal-vrfy=assert --gnu=30305 --c -I/usr/lib/gcc-lib/i586-suse-linux/3.3.5/include"
-
-ASSEMBLEFLAGS=""
-AS=as-intel-2.17
-OPT0="-fno-opt"
-OPT1=""
-OPT2="-fno-strength-red"
-OPT3="-fif-conv -finline -fno-strength-red"
-#OPT3="-finline -fno-strength-red"
-
-mode=LINK
-declare -a LFLAGS
-declare -a CPPFLAGS
-declare -a CFLAGS
-declare -a CFILES
-declare -a SFILES
-declare -a OFILES
-OPTFLAGS=""
-OUTFILE=""
-DEBUG=""
-CFLAGS=()
-LFLAGS=()
-# parse commandline
-while [ -n "$1" ]
-do
- case "$1" in
- -S ) mode=COMPILE;;
- -c ) mode=ASSEMBLE;;
- -E ) mode=PREPROCESS;;
- -b ) shift ; CFLAGS=("${CFLAGS[@]}" -b "$1");;
- -b* ) CFLAGS=("${CFLAGS[@]}" "$1");;
- -o ) shift ; OUTFILE="$1";;
- -o* ) OUTFILE="`echo "$1" | sed -e "s/^-o//"`";;
- -v ) DEBUG="1";;
- --version ) echo "eccp version 0.1"; exit 0;;
- -Wl,* ) ;; # TODO
- -Wa,* ) ;;
- -Wp,* ) ;;
- -l ) LFLAGS=("${LFLAGS[@]}" "-l $1");;
- -L ) LFLAGS=("${LFLAGS[@]}" "-L $1");;
- -l* | -L* ) LFLAGS=("${LFLAGS[@]}" "$1");;
- -W* ) ;; #TODO
- -f ) shift;;
- -f* ) ;; #TODO
- -march=* ) ;;# TODO
- -g* ) ;; # TODO
- -pipe ) ;;
- -MF ) shift;; # TODO
- -MT ) shift;; # TODO
- -MD | -MP | -MM | -MG ) ;;
- -I ) shift; CPPFLAGS=("${CPPFLAGS[@]}" "-I $1");;
- -D ) shift; CPPFLAGS=("${CPPFLAGS[@]}" "-D $1");;
- -D* | -I* ) CPPFLAGS=("${CPPFLAGS[@]}" "$1");;
- -O0 ) OPTFLAGS="$OPT0";;
- -O | -O1 ) OPTFLAGS="$OPT1";;
- -O2 ) OPTFLAGS="$OPT2";;
-
- -O* ) OPTFLAGS="$OPT3";;
-
- -* ) echo "WARNING: Unknown option $1" >& 2; exit 1;;
-
- *.c ) CFILES=("${CFILES[@]}" "$1");;
- *.s ) SFILES=("${SFILES[@]}" "$1");;
- *.o ) OFILES=("${OFILES[@]}" "$1");;
- * ) echo "WARNING: file format $1 not recognized" >&2;
- exit 1;;
- esac
- shift
-done
-CFLAGS=("${CFLAGS[@]}" $OPTFLAGS)
-
-if [ "$DEBUG" == "1" ]; then
- echo "OPTFLAGS ${OPTFLAGS}"
- echo "CFLAGS ${CFLAGS[*]}"
- echo "CPPFLAGS ${CPPFLAGS[*]}"
- echo "LFLAGS ${LFLAGS[*]}"
- echo "CFILES ${CFILES[*]}"
- echo "SFILES ${SFILES[*]}"
- echo "OFILES ${OFILE[*]}"
- echo "OUTFILE $OUTFILE"
-fi
-
-if [ "$mode" = "LINK" -a "$OUTFILE" = "" ] ; then
- OUTFILE="a.out"
-fi
-
-if [ "$mode" = "PREPROCESS" ] ; then
- for cfile in "${CFILES[@]}"; do
- OUTFLAGS=""
- if [ -n "$OUTFILE" ] ; then
- OUTFLAGS="-o$OUTFILE"
- fi
-
- if [ "$DEBUG" = "1" ]; then
- echo gcc -E "${CPPFLAGS[@]}" "$cfile" "$OUTFLAGS"
- fi
- gcc -E "${CPPFLAGS[@]}" "$cfile" "$OUTFLAGS" || exit $?
- done
- exit 0
-fi
-
-if [ "$mode" = "COMPILE" -o "$mode" = "ASSEMBLE" -o $mode = "LINK" ] ; then
- for cfile in "${CFILES[@]}"; do
- if [ -n "$OUTFILE" -a "$mode" = "COMPILE" ] ; then
- sfile="$OUTFILE"
- else
- sfile="`dirname "$cfile"`/`basename "$cfile" .c`.s"
- fi
-
- if [ "$DEBUG" = "1" ]; then
- echo edg $EDGFLAGS "${CPPFLAGS[@]}" "${CFLAGS[@]}" "$cfile" -o "$sfile"
- fi
- edg $EDGFLAGS "${CPPFLAGS[@]}" "${CFLAGS[@]}" "$cfile" || exit $?
-
- SFILES=("${SFILES[@]}" "$sfile")
- done
-fi
-
-if [ "$mode" = "ASSEMBLE" -o "$mode" = "LINK" ] ; then
- for sfile in "${SFILES[@]}"; do
- if [ -n "$OUTFILE" -a $mode = "ASSEMBLE" ] ; then
- ofile="$OUTFILE"
- else
- ofile="`dirname "$sfile"`/`basename "$sfile" .s`.o"
- fi
- if [ "$DEBUG" = "1" ]; then
- echo "$AS" $ASSEMBLEFLAGS "$sfile" -o "$ofile"
- fi
- "$AS" $ASSEMBLEFLAGS "$sfile" -o "$ofile" || exit $?
- OFILES=("${OFILES[@]}" "$ofile")
- done
-fi
-
-if [ $mode = "LINK" ] ; then
- if [ "$DEBUG" = "1" ]; then
- echo gcc ${LFLAGS[@]} ${OFILES[@]} -o "$OUTFILE"
- fi
- gcc ${LFLAGS[@]} ${OFILES[@]} -o "$OUTFILE"
-fi