new build: get rid of Go with few rc scripts.
This commit is contained in:
131
arch/rc/lib/build/utils.rc
Normal file
131
arch/rc/lib/build/utils.rc
Normal file
@@ -0,0 +1,131 @@
|
||||
# Utility functions designed to simplify build scripts.
|
||||
#
|
||||
# They react to environment variables
|
||||
|
||||
BUILD_INITIALIZED=true
|
||||
|
||||
CFLAGS=( \
|
||||
-9 \
|
||||
-g \
|
||||
-gdwarf-2 \
|
||||
-ggdb \
|
||||
'-mcmodel=small' \
|
||||
-O0 \
|
||||
-Wall \
|
||||
-Werror \
|
||||
-Wno-main \
|
||||
-Wno-missing-braces \
|
||||
-Wno-parentheses \
|
||||
-Wno-unknown-pragmas \
|
||||
)
|
||||
KLIB_CFLAGS=( \
|
||||
-DKERNEL \
|
||||
-c \
|
||||
'-mcmodel=kernel' \
|
||||
-O0 \
|
||||
-fplan9-extensions \
|
||||
-ffreestanding \
|
||||
-fstack-protector-all \
|
||||
-fno-builtin \
|
||||
-Wall \
|
||||
-Wno-missing-braces \
|
||||
-Wno-parentheses \
|
||||
-Wno-unknown-pragmas \
|
||||
-Wuninitialized \
|
||||
-g \
|
||||
)
|
||||
STACKCHECK_CFLAGS=( \
|
||||
-fstack-check \
|
||||
-fstack-protector-all \
|
||||
)
|
||||
CMD_OFLAGS=( \
|
||||
-static \
|
||||
-lavl \
|
||||
-lcomplete \
|
||||
-lcontrol \
|
||||
-ldisk \
|
||||
-lflate \
|
||||
-lframe \
|
||||
-lmemdraw \
|
||||
-lmemlayer \
|
||||
-lmemdraw \
|
||||
-ldraw \
|
||||
-lplumb \
|
||||
-lregexp \
|
||||
-lString \
|
||||
-l9p \
|
||||
-lauth \
|
||||
-lauthsrv \
|
||||
-lndb \
|
||||
-lip \
|
||||
-lsec \
|
||||
-lauth \
|
||||
-lmp \
|
||||
-lthread \
|
||||
-lbio \
|
||||
-l9p2000 \
|
||||
-ljehanne \
|
||||
)
|
||||
|
||||
CC=gcc
|
||||
CC=$JEHANNE_TOOLCHAIN/cross/posix/bin/$TOOLPREFIX$CC
|
||||
|
||||
AR=ar
|
||||
AR=$JEHANNE_TOOLCHAIN/cross/posix/bin/$TOOLPREFIX$AR
|
||||
|
||||
RANLIB=ranlib
|
||||
RANLIB=$JEHANNE_TOOLCHAIN/cross/posix/bin/$TOOLPREFIX$RANLIB
|
||||
|
||||
STRIP=strip
|
||||
STRIP=$JEHANNE_TOOLCHAIN/cross/posix/bin/$TOOLPREFIX$STRIP
|
||||
|
||||
LD=ld
|
||||
LD=$JEHANNE_TOOLCHAIN/cross/posix/bin/$TOOLPREFIX$LD
|
||||
|
||||
OBJCOPY=objcopy
|
||||
OBJCOPY=$JEHANNE_TOOLCHAIN/cross/posix/bin/$TOOLPREFIX$OBJCOPY
|
||||
|
||||
OBJDUMP=objdump
|
||||
OBJDUMP=$JEHANNE_TOOLCHAIN/cross/posix/bin/$TOOLPREFIX$OBJDUMP
|
||||
|
||||
READELF=readelf
|
||||
READELF=$JEHANNE_TOOLCHAIN/cross/posix/bin/$TOOLPREFIX$READELF
|
||||
|
||||
fn debuggable {
|
||||
# echo $*
|
||||
eval $*
|
||||
}
|
||||
|
||||
fn prependLibraryName {
|
||||
LIBRARY_NAME=$1
|
||||
if ( ! ~ 0 $#LIBRARY_NAME ) {
|
||||
for (i in *.o) {
|
||||
# rename object files to ease library merge
|
||||
debuggable mv $i $LIBRARY_NAME-$i
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn compileCommands {
|
||||
EXT=$1
|
||||
DESTINATION=$2
|
||||
shift 2
|
||||
LIST=$*
|
||||
if ( ~ 0 $#LIST ) {
|
||||
LIST=*.$EXT
|
||||
}
|
||||
|
||||
mkdir -p $DESTINATION
|
||||
|
||||
for (f in $LIST) {
|
||||
BINARY=`{basename $f|sed 's/\.'$EXT'//'}
|
||||
|
||||
debuggable $CC $f -o $BINARY -O2 '-std=gnu11' $STACKCHECK_CFLAGS $CFLAGS $CMD_OFLAGS
|
||||
debuggable mv $BINARY $DESTINATION
|
||||
}
|
||||
}
|
||||
|
||||
fn safemove {
|
||||
mkdir -p $*($#*)
|
||||
mv $*
|
||||
}
|
Reference in New Issue
Block a user