#!/bin/sh
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL.  You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation.  Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation.  All Rights
# Reserved.
#

#
# Wrapper for brain-damaged compilers that don't understand -o and -c together.
#

DUMMY="XxxXxxX"
DASH_C=0
DASH_O=0
GET_OBJECT=0
C_SRC="${DUMMY}"
CC_SRC="${DUMMY}"
CPP_SRC="${DUMMY}"
S_SRC="${DUMMY}"
OBJECT="${DUMMY}"

for i in $*
do
	if [ ${GET_OBJECT} -eq 1 ]; then
		OBJECT="$i"
		GET_OBJECT=0
	fi
	case $i in
		-c)
			DASH_C=1
			;;
		-o)
			DASH_O=1
			GET_OBJECT=1
			;;
		*.c)
			C_SRC="$i"
			;;
		+.*)
			;;
		*.cpp)
			CPP_SRC="$i"
			;;
		*.cc)
			CC_SRC="$i"
			;;
		*.s)
			S_SRC="$i"
			;;
	esac
done

CC $* || exit $?

# LAME!!!
if [ -f -O ]; then
	mv -f -- -O ${OBJECT}
fi

# if there was no -c and -o we're done
[ ${DASH_C} -eq 1 -a ${DASH_O} -eq 1 ] || exit 0

# cc always creates the .o from the .c name
if [ "${C_SRC}" != "${DUMMY}" ]; then
	OBJ=`basename ${C_SRC} .c`.o
elif [ "${CPP_SRC}" != "${DUMMY}" ]; then
	OBJ=`basename ${CPP_SRC} .cpp`.o
elif [ "${CC_SRC}" != "${DUMMY}" ]; then
	OBJ=`basename ${CC_SRC} .cc`.o
# or the .o from the .s name
elif [ "${S_SRC}" != "${DUMMY}" ]; then
	OBJ=`basename ${S_SRC} .s`.o
fi

[ -f ${OBJECT} ] || [ -f ${OBJ} ] && mv -f ${OBJ} ${OBJECT}
