12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #!/bin/sh
- SRC_BCC='bcc.c'
- SRC_CPP='main.c cpp.c hash.c token1.c token2.c'
- SRC_UPR='unproto.c error.c hash.c strsave.c symbol.c tok_clas.c tok_io.c
- tok_pool.c unproto.c vstring.c'
- SRC_CC1='bcc-cc1.c assign.c codefrag.c debug.c declare.c express.c exptree.c
- floatop.c function.c gencode.c genloads.c glogcode.c hardop.c input.c
- label.c loadexp.c longop.c output.c preproc.c preserve.c scan.c
- softop.c state.c table.c type.c'
- SRC_AS=' alloc.c as.c assemble.c errors.c express.c genbin.c genlist.c genobj.c
- gensym.c keywords.c macro.c mops.c pops.c readsrc.c scan.c table.c
- typeconv.c'
- SRC_LD=' ld.c dumps.c io.c linksyms.c readobj.c table.c typeconv.c
- writebin.c writex86.c'
- SRC_UP=' unproto.c tok_io.c tok_class.c tok_pool.c vstring.c symbol.c error.c
- hash.c strsave.c'
- main() {
- echo '@echo off'
- CFLAGS='-nologo -O'
- LDFLAGS='%LIB%\setargv.obj -link /NOE'
- ARCH=-Ms
- build bcc bcc bin $SRC_BCC
- CFLAGS='-nologo -O -DPOSIX_HEADERS_MISSING'
- LDFLAGS=
- ARCH=-Ml
- build cpp bcc-cpp lib $SRC_CPP
- build bcc bcc-cc1 lib $SRC_CC1
- build as as86 bin $SRC_AS
- build ld ld86 bin $SRC_LD
- build unproto unproto lib $SRC_UPR
- echo "echo Compile complete."
- echo ":exit_now"
- }
- build() {
- DIR="$1" ; shift
- PRG="$1" ; shift
- BIN="$1" ; shift
- OBJ=
- BOBJ=
- COBJ=
- LOBJ=
- SRC="$*"
- for i in $SRC
- do
- j=`basename $i .c`
- echo "cl $ARCH $CFLAGS -c -Fo%TMP%\\$j.obj $DIR\\$i"
- if [ "$BOBJ" = "" ]
- then BOBJ="%TMP%\\$j.obj"
- else LOBJ="$LOBJ +%TMP%\\$j.obj"
- fi
- COBJ="$COBJ %TMP%\\$j.obj"
- OBJ="$OBJ $j.obj"
- echo "if errorlevel 1 goto exit_now"
- done
- echo
- if [ `echo $COBJ | wc -c` -lt 50 ]
- then
- echo "cl $ARCH -o $BIN\\$PRG.exe$COBJ $LDFLAGS"
- echo "if errorlevel 1 goto exit_now"
- else
- echo "if exist %TMP%\\doslib.lib del %TMP%\\doslib.lib"
- echo $LOBJ | fmt -62 | \
- sed "s/\(.*\)/lib %TMP%\\\\doslib.lib \1; /" |
- sed 's/$/@if errorlevel 1 goto exit_now/' |
- tr '@' '\012'
- echo
- echo "cl $ARCH -o $BIN\\$PRG.exe $BOBJ %TMP%\\doslib.lib $LDFLAGS"
- echo "if errorlevel 1 goto exit_now"
- fi
- echo
- }
- main "$@" | sed 's/$/
/' > compile.bat
|