⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 install

📁 一个mips虚拟机非常好代码,使用C++来编写的,希望大家多学学,
💻
字号:
#! /bin/shrm -f build.log{    exists() {	[ -x "`which $1`" ]    }    error() {	echo "[`basename $0`] Error:" >&2	echo  "    $*" >&2	exit 1    }    mkdirs() {	for DIR in "$@"	do	    [ -d "$WORK/$DIR" ] || {		echo "Creating directory \"obj/$DIR\"."		mkdir -p "$WORK/$DIR" || exit 1	    }	done    }    build_library() {	DIR="$1" export DIR	MAKEFILES="-f $ROOT/$DIR/Makefile -f $ROOT/build/makeflags"	mkdirs lib "$DIR"	cd $WORK/$DIR || exit 1	$MAKE $MAKEFILES depend || exit 1	$MAKE $MAKEFILES -f .depend lib || exit 1    }    build_binary() {	DIR="$1" export DIR	MAKEFILES="-f $ROOT/$DIR/Makefile -f $ROOT/build/makeflags"	mkdirs bin "$DIR"	cd $WORK/$DIR || exit 1	$MAKE $MAKEFILES depend || exit 1	$MAKE $MAKEFILES -f .depend LD_LIST="`echo \`cat $WORK/ld.list\``" bin || exit 1    }    cat <<EOFSulima v1.0 Installation Script.Copyright 1998-2000 Patryk Zadarnowski.EOF    ROOT=`cd \`dirname $0\`; pwd`    ### Set the work directory.    WORK="$ROOT/obj"    ### Unset variables defined in makefiles so we can use make -e.    unset LIBRARY SOURCES MAKELEVEL    CC=""	CFLAGS=""	# C compiler    CCC=""	CCFLAGS=""	# C++ compiler    AR=""	ARFLAGS=""	# archiver/dynamic linker    MKDEP=""			# cpp -M or similar dependency collector    CDEFS=""			# additional C/C++ macros    CPATH="-I$ROOT/include"	# header include path    LPATH="-L$ROOT/lib-$ARCH"	# library path    LIBS="-lm"			# additional standard libraries    TCL_LIB=""			# the tcl8 library    EXT=""			# library extension    ### Process the command-line options.    DEBUG=no    STATIC=no    BUILD=no    CLEAN=no    INSTALL=    for ARG in "$@"    do	case "$ARG" in	-32)		CDEFS="$CDEFS -DSIM32";;	-64)		CDEFS="$CDEFS -DSIM64";;	-g)		DEBUG=yes;;	-O*)		CFLAGS="$CFLAGS $ARG"			CCFLAGS="$CCFLAGS $ARG";;	c=*)		CC=`expr "$ARG" : 'c=\\(.*\\)'`;;	c++=*)		CCC=`expr "$ARG" : 'c++=\\(.*\\)'`;;	cc=*)		CC=`expr "$ARG" : 'cc=\\(.*\\)'`; CCC=$CC;;	mkdep=*)	MKDEP=`expr "$ARG" : 'mkdep=\\(.*\\)'`;;	make=*)		MAKE=`expr "$ARG" : 'make=\\(.*\\)'`;;	all)		BUILD=yes;;	install=*)	BUILD=yes			INSTALL=`expr "$ARG" : 'install=\\(.*\\)'`;;	cleanall)	CLEAN=all;;	clean)		CLEAN=work;;	*)		error "Invalid argument \"$ARG\".";;	esac    done    [ $BUILD = no -a $CLEAN = no ] && BUILD=yes    [ $CLEAN != no -a -z "$INSTALL" ] && BUILD=no # skip pointless building    [ $BUILD = yes ] && {	if [ $DEBUG = yes ]	then	    CFLAGS="$CFLAGS -g"	    CCFLAGS="$CCFLAGS -g"	else	    CDEFS="$CDEFS"	fi	### Find make. GNU make is seriously broken. Set this to point to a	### working make.	for MAKE in /usr/xpg4/bin/make /usr/bin/posix/make /usr/bin/make -	do	    [ $MAKE = - ] &&		error 'Cannot find a POSIX-compatible make(1).'	    exists $MAKE && break	done	MAKE="$MAKE -e"	### Find the C and C++ compilers.	for CC in $CC gcc tcc cc -	do	    [ $CC = - ] &&		error 'Cannot find a known C compiler.'	    exists $CC && break	done	for CCC in $CCC g++ tcc -	do	    [ $CCC = - ] &&		error 'Cannot find a known C++ compiler.'	    exists $CCC && break	done	### Set some additional compiler-specific flags.	case $CC in	tcc)	   CFLAGS="$CFLAGS -Xc -Y32bit -Xa";;	gcc*)	   CFLAGS="$CFLAGS -O9 -Wall"		   MKDEP="$CC -MM";;	esac	case $CCC in	tcc)	   CCFLAGS="$CCFLAGS -Xc -Y32bit -Yc++ -Xc";;	gcc*|g++*) CCFLAGS="$CCFLAGS -O9 -Wall"		   MKDEP="$CCC -MM";;	esac	### Find a dependency generator.	for MKDEP in "$MKDEP" 'gcc -MM' 'cpp -M' -	do	    [ "$MKDEP" ] && {		[ "$MKDEP" = - ] &&		    error 'Cannot locale a known C preprocessor.'		exists $MKDEP && break	    }	done    	### Set some file extensions.	LIBEXT=.o	BINEXT=	### Prepare the linker flags. !!!!! YOU MAY NEED TO CHANGE THAT !!!!!	AR="ld"	ARFLAGS="-r -o"		### Find <tcl.h>.	for TCL_CPATH in /usr/local/include /usr/include \		/usr/include/tcl8* /usr/local/include/tcl8*	do	    [ -r $TCL_CPATH/tcl.h ] && break;	done	[ -r $TCL_CPATH/tcl.h ] || error 'Cannot find <tcl.h>.'	CPATH="$CPATH -I$TCL_CPATH"	### Find libtcl8.	for TCL_LIB in /usr/lib/libtcl8*.so /usr/lib/libtcl8*.a /usr/local/lib/libtcl8*.so \	    /usr/local/lib/libtcl8*.a	do	    [ -r $TCL_LIB ] && break;	done	[ -r $TCL_LIB ] || error 'Cannot find libtcl8.'	# Display the configuration information.	#echo "C compiler:     " $CC $CFLAGS $CDEFS	echo "Make:            " $MAKE	echo "C++ compiler:    " $CCC $CCFLAGS $CDEFS	echo "Mkdep:           " $MKDEP $CDEFS	echo "Archiver/linker: " $AR $ARFLAGS	echo "TCL library:     " $TCL_LIB	[ "$INSTALL" ] &&	echo "Target directory:" $INSTALL	echo	export ROOT WORK CC CFLAGS CCC CCFLAGS AR ARFLAGS MKDEP	export CDEFS CPATH LPATH LIBS LIBEXT BINEXT	[ -d $WORK ] || {	    echo "Creating directory \"obj\"."	    mkdir -p $WORK	}	### Compile the module libraries.	echo ${TCL_LIB} > "$WORK/ld.list"	sed 's/#.*$//' $ROOT/build/module.list | \	while read MODULE DIR GARBAGE	do	    [ -z "$MODULE" ] || {		echo "Making module $MODULE in \"$DIR\"."		build_library $DIR library || exit 1		echo "$WORK/lib/$MODULE$LIBEXT" >> "$WORK/ld.list"	    }	done || exit 1	### Finally, compile the main executable.	echo "Making \"sulima\"."	build_binary sulima || exit 1    }    [ -z "$INSTALL" ] || {	echo "Installing sulima binary in \"$INSTALL\"."	cp "$WORK/bin/sulima" $INSTALL || exit 1    }    if [ $CLEAN = all ]    then	echo "Cleaning up the work directories."	rm -rf $ROOT/obj $ROOT/sulima.log* $ROOT/*.core $ROOT/core	echo "Cleaning up the source tree."	find "$ROOT" -name "*~" -exec rm {} \;    elif [ $CLEAN = work ]    then	echo "Cleaning up the work directory."	rm -rf "$WORK" "$ROOT/sulima.log"*    fi    ### All done.    echo 'Done.                   '}exit 0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -