123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- #!/bin/bash
- #### INSTAL PARAMS ####
- ARCH=amd64
- ### DIRS ###
- BASEDIR=${_BUILD_DIR}
- INC_DIR=${BASEDIR}/sys/include
- INC_ARCH=${BASEDIR}/${ARCH}/include
- LIB_DIR=${BASEDIR}/${ARCH}/lib
- SRC_DIR=${BASEDIR}/sys/src
- UTIL_DIR=${_BUILD_DIR}/util
- CMD_DIR=${SRC_DIR}/cmd
- KRL_DIR=${SRC_DIR}/9/k10
- TEST_DIR=${SRC_DIR}/test
- ### TOOLCHAIN ###
- AR=ar
- RANLIB=ranlib
- LD=ld
- LEX=lex
- PARSER_GEN=yacc
- COLLECT=/usr/lib/gcc/x86_64-linux-gnu/4.9/collect2
- COLLECTFLAGS="-plugin /usr/lib/gcc/x86_64-linux-gnu/4.9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper --sysroot=/ --build-id -m elf_x86_64 --hash-style=gnu"
- AWK=awk
- XD=xxd
- NM=nm
- ### KERNEL ###
- DATE=$(date +%s)
- EXTKERNDATE="-DKERNDATE=${DATE}"
- KERNEL_CONF="k8cpu"
- ### CMD Provisional!!! ###
- #BUILD_CMD="rc bind mount cat cp echo ls ipconfig ps mkdir pwd chmod rio date dd vga ping telnet dhcpclient srv testalarm"
- # Now essentials are included in build.go
- BUILD_CMD=""
- ### functions ###
- test_hello()
- {
- BUILD_IN="hello.c"
- BUILD_OUT="hello"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="stdio c"
- LDFLAGS_EXTRA="-static -e_main"
- }
- test_to_fork()
- {
- BUILD_IN="to_fork.c"
- BUILD_OUT="to_fork"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="stdio c"
- LDFLAGS_EXTRA="-static -e_main"
- }
- test_saymyname()
- {
- BUILD_IN="say.c"
- BUILD_OUT="say"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="stdio c"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_dd()
- {
- BUILD_IN="dd.c"
- BUILD_OUT="dd.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_date()
- {
- BUILD_IN="date.c"
- BUILD_OUT="date.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_chmod()
- {
- BUILD_IN="chmod.c"
- BUILD_OUT="chmod.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_pwd()
- {
- BUILD_IN="pwd.c"
- BUILD_OUT="pwd.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_mkdir()
- {
- BUILD_IN="mkdir.c"
- BUILD_OUT="mkdir.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_rio()
- {
- BUILD_IN="data.c fsys.c rio.c scrl.c time.c util.c wctl.c wind.c xfid.c"
- BUILD_OUT="rio.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="libcomplete libframe libdraw libthread libplumb libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_vga()
- {
- BUILD_DIR=${CMD_DIR}/aux/vga
- BUILD_IN="3dfx.c bt485.c ct65540.c error.c i81x.c ics534x.c mach64xx.c neomagic.c radeon.c s3928.c sc15025.c trio64.c tvp3026.c vga.c vision968.c \
- ark2000pv.c ch9294.c cyber938x.c et4000.c ibm8514.c io.c main.c nvidia.c rgb524.c s3clock.c stg1702.c tvp3020.c tvp3026clock.c virge.c vmware.c \
- att20c49x.c clgd542x.c data.c et4000hwgc.c icd2061a.c mach32.c mga2164w.c palette.c rgb524mn.c s3generic.c t2r4.c tvp3025.c vesa.c vision864.c w30c516.c \
- att21c498.c clgd546x.c db.c hiqvideo.c ics2494.c mach64.c mga4xx.c pci.c s3801.c s3hwgc.c template.c tvp3025clock.c vesadb.c vision964.c"
- BUILD_OUT="vga.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="ndb bio libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_srv()
- {
- BUILD_IN="srv.c"
- BUILD_OUT="srv.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="libauth bio ip libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_dhcpclient()
- {
- BUILD_DIR=${CMD_DIR}/ip
- BUILD_IN="dhcpclient.c"
- BUILD_OUT="dhcpclient.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="bio ip libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_telnet()
- {
- BUILD_DIR=${CMD_DIR}/ip
- BUILD_IN="telnet.c"
- BUILD_OUT="telnet.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="bio ip libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_ping()
- {
- BUILD_DIR=${CMD_DIR}/ip
- BUILD_IN="ping.c"
- BUILD_OUT="ping.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="ndb bio ip libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_ipconfig()
- {
- BUILD_DIR=${CMD_DIR}/ip/ipconfig
- BUILD_IN="ipv6.c main.c ppp.c"
- BUILD_OUT="ipconfig.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="9p ndb bio ip libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_ps()
- {
- BUILD_IN="ps.c"
- BUILD_OUT="ps.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="bio libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_ls()
- {
- BUILD_IN="ls.c"
- BUILD_OUT="ls.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="bio libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_cp()
- {
- BUILD_IN="cp.c"
- BUILD_OUT="cp.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_echo()
- {
- BUILD_IN="echo.c"
- BUILD_OUT="echo.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_testalarm()
- {
- BUILD_IN="testalarm.c"
- BUILD_OUT="testalarm.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_cat()
- {
- BUILD_IN="cat.c"
- BUILD_OUT="cat.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_rc()
- {
- BUILD_IN=" code.c \
- exec.c \
- getflags.c \
- glob.c \
- havefork.c \
- here.c \
- io.c \
- lex.c \
- pcmd.c \
- pfnc.c \
- plan9.c \
- simple.c \
- subr.c \
- trap.c \
- tree.c \
- var.c \
- y.tab.c \
- "
- BUILD_OUT="rc.elf.out"
- CLEAN_COM="rm -f *.o *.tab.* *.elf.*"
- LIBS_TO_LINK="String libc"
- LDFLAGS_EXTRA="-static -e_main"
-
- #Extra tasks if we're compiling
- if [ $1 -eq 1 ]
- then
- echo "$PARSER_GEN -d syn.y"
- $PARSER_GEN -d syn.y
- if [ $? -ne 0 ]
- then
- echo "ERROR executing $PARSER_GEN"
- exit 1
- fi
- echo "cp y.tab.h x.tab.h"
- cp y.tab.h x.tab.h
- if [ $? -ne 0 ]
- then
- echo "ERROR copying y.tab.h to x.tab.h"
- fi
- fi
- }
- # One for command? ugh, do it better!!
- cmd_bind()
- {
- BUILD_IN="bind.c"
- BUILD_OUT="bind.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
- cmd_mount()
- {
- BUILD_IN="mount.c"
- BUILD_OUT="mount.elf.out"
- CLEAN_COM="rm -f *.elf.* *.o"
- LIBS_TO_LINK="auth libc"
- LDFLAGS_EXTRA="-static -e_main"
- }
|