Skip to content

Commit

Permalink
Merge pull request #3 from appneta/Enhancement_improve_--mbps_option_…
Browse files Browse the repository at this point in the history
…stability_and_performance

Enhancement improve   mbps option stability and performance
  • Loading branch information
fklassen committed Dec 3, 2013
2 parents 50080cf + ca78c94 commit 0b2a245
Show file tree
Hide file tree
Showing 42 changed files with 1,682 additions and 1,971 deletions.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@
*.o
*.so
*.a
*.la
*.lo
*_opts.h
.libs

# Packages #
############
Expand Down Expand Up @@ -64,3 +68,5 @@ TAGS
.gdb_history
Makefile
types_c.vim
.project
.cproject
2 changes: 1 addition & 1 deletion autogen.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ if test -x "`which glibtoolize`" ; then
# Necessary under OS X
glibtoolize --copy --automake --force
else
libtoolize --copy
libtoolize --copy --force
fi
autoheader
automake --add-missing --copy
Expand Down
101 changes: 54 additions & 47 deletions config/compile
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#! /bin/sh
# Wrapper for compilers which do not understand `-c -o'.

scriptversion=2003-11-09.00
scriptversion=2009-10-06.20; # UTC

# Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software
# Foundation, Inc.
# Written by Tom Tromey <[email protected]>.
#
# This program is free software; you can redistribute it and/or modify
Expand All @@ -17,8 +18,7 @@ scriptversion=2003-11-09.00
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# along with this program. If not, see <http://www.gnu.org/licenses/>.

# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
Expand Down Expand Up @@ -47,45 +47,49 @@ right script to run: please start by reading the file `INSTALL'.
Report bugs to <[email protected]>.
EOF
exit 0
exit $?
;;
-v | --v*)
echo "compile $scriptversion"
exit 0
exit $?
;;
esac


prog=$1
shift

ofile=
cfile=
args=
while test $# -gt 0; do
case "$1" in
-o)
# configure might choose to run compile as `compile cc -o foo foo.c'.
# So we do something ugly here.
ofile=$2
shift
case "$ofile" in
*.o | *.obj)
;;
*)
args="$args -o $ofile"
ofile=
;;
esac
;;
*.c)
cfile=$1
args="$args $1"
;;
*)
args="$args $1"
;;
esac
eat=

for arg
do
if test -n "$eat"; then
eat=
else
case $1 in
-o)
# configure might choose to run compile as `compile cc -o foo foo.c'.
# So we strip `-o arg' only if arg is an object.
eat=1
case $2 in
*.o | *.obj)
ofile=$2
;;
*)
set x "$@" -o "$2"
shift
;;
esac
;;
*.c)
cfile=$1
set x "$@" "$1"
shift
;;
*)
set x "$@" "$1"
shift
;;
esac
fi
shift
done

Expand All @@ -95,42 +99,45 @@ if test -z "$ofile" || test -z "$cfile"; then
# normal compilation that the losing compiler can handle. If no
# `.c' file was seen then we are probably linking. That is also
# ok.
exec "$prog" $args
exec "$@"
fi

# Name of file we expect compiler to create.
cofile=`echo $cfile | sed -e 's|^.*/||' -e 's/\.c$/.o/'`
cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`

# Create the lock directory.
# Note: use `[/.-]' here to ensure that we don't use the same name
# Note: use `[/\\:.-]' here to ensure that we don't use the same name
# that we are using for the .o file. Also, base the name on the expected
# object file name, since that is what matters with a parallel build.
lockdir=`echo $cofile | sed -e 's|[/.-]|_|g'`.d
lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
while true; do
if mkdir $lockdir > /dev/null 2>&1; then
if mkdir "$lockdir" >/dev/null 2>&1; then
break
fi
sleep 1
done
# FIXME: race condition here if user kills between mkdir and trap.
trap "rmdir $lockdir; exit 1" 1 2 15
trap "rmdir '$lockdir'; exit 1" 1 2 15

# Run the compile.
"$prog" $args
status=$?
"$@"
ret=$?

if test -f "$cofile"; then
mv "$cofile" "$ofile"
test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
elif test -f "${cofile}bj"; then
test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
fi

rmdir $lockdir
exit $status
rmdir "$lockdir"
exit $ret

# Local Variables:
# mode: shell-script
# sh-indentation: 2
# eval: (add-hook 'write-file-hooks 'time-stamp)
# time-stamp-start: "scriptversion="
# time-stamp-format: "%:y-%02m-%02d.%02H"
# time-stamp-end: "$"
# time-stamp-time-zone: "UTC"
# time-stamp-end: "; # UTC"
# End:
Loading

0 comments on commit 0b2a245

Please sign in to comment.