8
0
mirror of https://github.com/FirebirdSQL/firebird.git synced 2025-01-27 04:43:02 +01:00
firebird-mirror/src/makefiles/special_opt
bellardo 6681f4852e More changes to convert FB2 to c++. This time is files that have been renamed
and some conflict resolutions on files edited by more than one person at once.
2001-07-12 06:32:05 +00:00

85 lines
2.1 KiB
Bash

#!/bin/sh
# The contents of this file are subject to the Interbase Public
# License Version 1.0 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy
# of the License at http://www.Inprise.com/IPL.html
#
# Software distributed under the License is distributed on an
# "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express
# or implied. See the License for the specific language governing
# rights and limitations under the License.
#
# The Original Code was created by Inprise Corporation
# and its predecessors. Portions created by Inprise Corporation are
# Copyright (C) Inprise Corporation.
#
# All Rights Reserved.
# Contributor(s): ______________________________________.
# Shell script to perform special optimization functions. It can
# force optimization, prevent optimization, or do nothing.
if [ "$1" = '?' ]; then
echo 'Usage: special_opt [YES] compile_line'
echo ' [NO ]'
fi
#
SYSTEM=$(SYSTEM)
#
# Set default optimize and debug flags
FLAGS_OPT=-O
FLAGS_DEBUG=-g
#
# Set system specific optimize and debug flags
if [ "$SYSTEM" = 'NXT' ]; then
# On NeXT, optimization and debugging are NOT mutually exclusive
FLAGS_DEBUG=
fi
if [ "$SYSTEM" = 'WIN_NT' -o "$SYSTEM" = 'OS2' -o "$SYSTEM" = 'WIN_NTS' ]; then
PATH="$PATH;$Path"
export PATH
# On Windows NT, optimization and debugging are NOT mutually exclusive
FLAGS_OPT=-Ob2gtp
FLAGS_DEBUG=
fi
#
# If the first argument isn't YES or NO, just execute the command, as is
if [ "$1" != 'YES' -a "$1" != 'NO' ]; then
set -x
$@
exit $?
fi
#
OPTIMIZE_CASE=$1
shift 1
#
if [ "$OPTIMIZE_CASE" = 'YES' ]; then
REMOVE=$FLAGS_DEBUG
INCLUDE=$FLAGS_OPT
else
REMOVE=$FLAGS_OPT
INCLUDE=
fi
#
COMPILE_LINE=
PRIOR=
INCLUDED=0
for i
do
COMPILE_LINE="$COMPILE_LINE $PRIOR"
if [ "$i" != "$REMOVE" ]; then
PRIOR=$i
if [ "$i" = "$INCLUDE" ]; then
INCLUDED=1
fi
else
PRIOR=
fi
done
#
if [ $INCLUDED -eq 1 ]; then
INCLUDE=
fi
COMPILE_LINE="$COMPILE_LINE $INCLUDE $PRIOR"
set -x
eval $COMPILE_LINE
exit $?