diff --git a/arch/amd64/include/cflags.json b/arch/amd64/include/cflags.json deleted file mode 100644 index 5bffa44..0000000 --- a/arch/amd64/include/cflags.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "buildflags": { - "Cflags": [ - "-9", - "-g", - "-gdwarf-2", - "-ggdb", - "-mcmodel=small", - "-O0", - "-Wall", - "-Werror", - "-Wno-main", - "-Wno-missing-braces", - "-Wno-parentheses", - "-Wno-unknown-pragmas" - ] - } -} diff --git a/arch/rc/cmd/build b/arch/rc/cmd/build new file mode 100644 index 0000000..a24f3fb --- /dev/null +++ b/arch/rc/cmd/build @@ -0,0 +1,37 @@ +#!/cmd/rc +# This script run the rc build scripts passed as arguments +# after moving in their directory. +# +# If passed a directory, it will look for a build script named +# `{basename $PWD}.rc.build and run it instead. +# +# If invoked with no arguments it will assume $PWD as argument +# +# NOTE: this script is run both fron Jehanne and from UNIX during +# cross compilation (through the sh wrapper in hacking/bin/build) +# thus it should not explicitly check $status as exit codes +# work differently in UNIX and Jehanne. + +args=$* +if (~ $#args 0) + args=$PWD + +for (script in $args){ + if (test -d $script){ + if (~ $script $JEHANNE){ + target=jehanne + } + if not { + target=`{basename $script} + } + rundir=$script + script=$target.rc.build + } + if not { + rundir=`{dirname $script} + script=`{basename $script} + } + + echo $rundir/$script + @{cd $rundir; . $JEHANNE/arch/rc/lib/build/utils.rc; cat $script|rc -v -e >[2=1]|sed 's/^/ /'} +} diff --git a/arch/rc/cmd/template b/arch/rc/cmd/template new file mode 100644 index 0000000..904024c --- /dev/null +++ b/arch/rc/cmd/template @@ -0,0 +1,10 @@ +#!/cmd/rc + +# sed -n \ +# -e '/#{{/{x; /^$/{x;b}; s/''/''''/g; s/\$[$a-zA-Z0-9()#"]\+[\^]\?/''&''/g; s/^\n/echo ''/ ; s/$/''/; p; x; h; b}' \ +# -e H \ +# -e '/#}}/{s/#}}//; x; s/#{{//; s/#}}//; p; g}' \ +# -e '${x; /^$/{b}; /#}}/!{s/''/''''/g; s/\$[$a-zA-Z0-9()#"]\+[\^]\?/''&''/g; s/^\n/echo ''/ ; s/$/''/; p}}' \ +# | rc + +sed '/^$/{s//echo/; b}; /^#! /{s/#! //g; b}; /^#! /!{s/''/''''/g; s/\$\(#\|"\)\?[$a-zA-Z0-9_]\+\(([$a-zA-Z0-9#_]\+)\)\?[\^]\?/''&''/g; s/^/echo ''/ ; s/$/''/; b}' diff --git a/arch/rc/lib/build/utils.rc b/arch/rc/lib/build/utils.rc new file mode 100644 index 0000000..25781eb --- /dev/null +++ b/arch/rc/lib/build/utils.rc @@ -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 $* +} diff --git a/build.json b/build.json deleted file mode 100644 index 7e3d802..0000000 --- a/build.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "all": { - "Projects": [ - "/sys/src/lib/klibs.json", - "/sys/src/lib/libs.json", - "/sys/src/cmd/cmds.json", - "/sys/src/kern/amd64/workhorse.json", - "/sys/src/kern/amd64/", - "/hacking/cross/pkgs/", - "qa/" - ] - } -} diff --git a/hacking b/hacking index 6b473cd..e690881 160000 --- a/hacking +++ b/hacking @@ -1 +1 @@ -Subproject commit 6b473cd28f7b778557c8758bdb612fadb54c11bc +Subproject commit e6908814ef79cae9a30fcc1504328d6da6e33ee8 diff --git a/jehanne.rc.build b/jehanne.rc.build new file mode 100644 index 0000000..0bc4564 --- /dev/null +++ b/jehanne.rc.build @@ -0,0 +1,9 @@ +#!/cmd/rc + +build sys/src/lib/klibs.rc.build +build sys/src/lib/libs.rc.build +build sys/src/cmd/cmd.rc.build +build sys/src/kern/amd64/workhorse.rc.build +build sys/src/kern/amd64/ +@{cd hacking/cross/pkgs/ && ./build.sh >[2=1]|sed 's/^/ /'} +build qa/ diff --git a/qa/build.json b/qa/build.json deleted file mode 100644 index 71c3561..0000000 --- a/qa/build.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "RegressionTests": { - "Projects": [ - "kern/", - "lib/c/", - "lib/thread/", - "lib/newlib", - "gnu/gcc/" - ] - } -} diff --git a/qa/cmd/rc/010-include.rc.template b/qa/cmd/rc/010-include.rc.template new file mode 100644 index 0000000..c9bea92 --- /dev/null +++ b/qa/cmd/rc/010-include.rc.template @@ -0,0 +1,3 @@ + $i: + $A($i) + diff --git a/qa/cmd/rc/010-template.rc.template b/qa/cmd/rc/010-template.rc.template new file mode 100644 index 0000000..aa788c5 --- /dev/null +++ b/qa/cmd/rc/010-template.rc.template @@ -0,0 +1,18 @@ +#! A=(a b c) +#! PTR=A +#! ASIZE=$#A +#! LDS='$' + +Variable '$LDS^PTR' contains: $"PTR +Variable '$LDS^$LDS^PTR' contains: $"$PTR + +#! for(v in $A) { + - $v +#! } + +size of A: $#A + + +#! for(i in `{seq $ASIZE}) { +#! cat 010-include.rc.template|template|rc +#! } diff --git a/qa/cmd/rc/010-template.runner b/qa/cmd/rc/010-template.runner new file mode 100755 index 0000000..5ccd7e6 --- /dev/null +++ b/qa/cmd/rc/010-template.runner @@ -0,0 +1,10 @@ +#!/cmd/rc +runner=$0 +test = `{echo $runner|sed 's/.runner//'} + +A=(first second third) +PTR=A +OUTPUT=/tmp/template.$pid.output + +cat $test.rc.template|template > $OUTPUT +cat $OUTPUT diff --git a/qa/gnu/gcc/build.json b/qa/gnu/gcc/build.json deleted file mode 100644 index c51c354..0000000 --- a/qa/gnu/gcc/build.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "RegressionTests": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/qa/gnu/gcc", - "SourceFilesCmd": [ - "rune.c" - ] - } -} diff --git a/qa/gnu/gcc/gcc.rc.build b/qa/gnu/gcc/gcc.rc.build new file mode 100644 index 0000000..dcfc87c --- /dev/null +++ b/qa/gnu/gcc/gcc.rc.build @@ -0,0 +1,6 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +compileCommands c $JEHANNE/arch/$ARCH/qa/gnu/gcc +rm -f *.o diff --git a/qa/kern/build.json b/qa/kern/build.json deleted file mode 100644 index 5072cae..0000000 --- a/qa/kern/build.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "RegressionTests": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/qa/kern", - "Post": [ - "cp *.rc $JEHANNE/arch/$ARCH/qa/kern/", - "cp *.runner $JEHANNE/arch/$ARCH/qa/kern/" - ], - "SourceFilesCmd": [ - "alarm.c", - "args.c", - "awake.c", - "awake_note0.c", - "awake_note1.c", - "brk.c", - "broken.c", - "dup.c", - "execl.c", - "float.c", - "fork.c", - "fork_chain.c", - "frexp.c", - "getmainpid.c", - "getpid.c", - "getppid.c", - "iphash.c", - "malloc1GiB.c", - "memoryisolation.c", - "memoryshare.c", - "mixedfloat.c", - "nested_note.c", - "noexecmem.c", - "notify.c", - "nsclone.c", - "nsec.c", - "pipering.c", - "postnote.c", - "psx.c", - "segattach.c", - "sched0.c", - "stop_start.c", - "syscall.c", - "sysstatread.c", - "tsemacquire.c", - "wait_note.c", - "waserror.c" - ] - } -} diff --git a/qa/kern/kern.rc.build b/qa/kern/kern.rc.build new file mode 100644 index 0000000..3db1c24 --- /dev/null +++ b/qa/kern/kern.rc.build @@ -0,0 +1,8 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +compileCommands c $JEHANNE/arch/$ARCH/qa/kern +cp *.rc $JEHANNE/arch/$ARCH/qa/kern/ +cp *.runner $JEHANNE/arch/$ARCH/qa/kern/ +rm -f *.o diff --git a/qa/lib/c/build.json b/qa/lib/c/build.json deleted file mode 100644 index 9aef650..0000000 --- a/qa/lib/c/build.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "RegressionTests": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Cflags": [ - "-O2", - "-std=gnu11" - ], - "Install": "/arch/$ARCH/qa/lib/c", - "Post": [ - "cp *.rc $JEHANNE/arch/$ARCH/qa/lib/c/" - ], - "SourceFilesCmd": [ - "access.c", - "asmscall.c", - "cleanname.c", - "conswrite.c", - "hcube.c", - "lockt.c", - "longjmp.c", - "privates.c", - "privates2.c", - "qlockt0.c", - "qlockt1.c", - "qlockt2.c", - "rlockt0.c", - "rlockt1.c", - "rlockt2.c", - "rsleept0.c", - "rsleept1.c", - "rsleept2.c", - "rwakeup0.c", - "rwakeup1.c", - "sleep.c", - "sleep2.c", - "sqrt.c", - "sysfatal.c", - "va_copy.c", - "vseprint.c", - "wlockt0.c", - "wlockt1.c", - "wlockt2.c" - ] - } -} diff --git a/qa/lib/c/c.rc.build b/qa/lib/c/c.rc.build new file mode 100644 index 0000000..e7131db --- /dev/null +++ b/qa/lib/c/c.rc.build @@ -0,0 +1,9 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* + +compileCommands c $JEHANNE/arch/$ARCH/qa/lib/c + +cp *.rc $JEHANNE/arch/$ARCH/qa/lib/c/ +rm -f *.o diff --git a/qa/lib/newlib/build.json b/qa/lib/newlib/build.json deleted file mode 100644 index e584c0c..0000000 --- a/qa/lib/newlib/build.json +++ /dev/null @@ -1,138 +0,0 @@ -{ - "SimplePOSIXTests": { - "Cflags": [ - "-g", - "-gdwarf-2", - "-ggdb", - "-mcmodel=small", - "-O0", - "-Wall", - "-Wno-main", - "-Wno-missing-braces", - "-Wno-parentheses", - "-Wno-unknown-pragmas", - "-fstack-check", - "-fstack-protector-all", - "-O2", - "-std=gnu11" - ], - "Install": "/arch/$ARCH/qa/lib/newlib", - "Post": [ - "rm -f *.o", - "cp *.runner $JEHANNE/arch/$ARCH/qa/lib/newlib/", - "git clean -xdf ." - ], - "Pre": [ - "rm -f *.tag.*" - ], - "SourceFiles": [ - "libposix_customization.c" - ], - "SourceFilesCmd": [ - "000-hello.c", - "001-hello.c", - "002-atexit.c", - "010-fork.c", - "020-waitpid.c", - "030-pause.c", - "031-setjmp.c", - "040-gettimeofday.c", - "041-env.c", - "050-setsid.c", - "100-files.c", - "101-files.c", - "102-files.c", - "103-files.c", - "104-files-nonblocking.c", - "120-fcntl.c", - "121-fcntl.c", - "200-signals.c", - "201-signals.c", - "202-signals.c", - "203-signals.c", - "204-signals.c", - "205-signals.c", - "206-signals.c", - "207-sigsuspend.c", - "208-sigpending.c", - "209-sigwaitinfo.c", - "210-sigtimedwait.c", - "211-sigtimedwait.c", - "212-sigwait.c", - "213-sigqueue.c", - "214-sigsetjmp.c", - "215-sigprocmask.c" - ] - }, - "SIGCHLDTests": { - "Cflags": [ - "-g", - "-gdwarf-2", - "-ggdb", - "-mcmodel=small", - "-O0", - "-Wall", - "-Wno-main", - "-Wno-missing-braces", - "-Wno-parentheses", - "-Wno-unknown-pragmas", - "-fstack-check", - "-fstack-protector-all", - "-O2", - "-DWITH_SIGCHLD", - "-std=gnu11" - ], - "Install": "/arch/$ARCH/qa/lib/newlib/sigchld", - "Post": [ - "rm -f *.o", - "cp *.runner $JEHANNE/arch/$ARCH/qa/lib/newlib/sigchld/", - "git clean -xdf ." - ], - "Pre": [ - "rm -f *.tag.*" - ], - "SourceFiles": [ - "libposix_sigchld.c" - ], - "SourceFilesCmd": [ - "000-hello.c", - "001-hello.c", - "002-atexit.c", - "010-fork.c", - "020-waitpid.c", - "030-pause.c", - "031-setjmp.c", - "040-gettimeofday.c", - "041-env.c", - "050-setsid.c", - "100-files.c", - "101-files.c", - "102-files.c", - "103-files.c", - "104-files-nonblocking.c", - "120-fcntl.c", - "121-fcntl.c", - "200-signals.c", - "201-signals.c", - "202-signals.c", - "203-signals.c", - "204-signals.c", - "205-signals.c", - "206-signals.c", - "207-sigsuspend.c", - "208-sigpending.c", - "209-sigwaitinfo.c", - "210-sigtimedwait.c", - "211-sigtimedwait.c", - "212-sigwait.c", - "213-sigqueue.c", - "214-sigsetjmp.c", - "215-sigprocmask.c" - ] - }, - "NewlibTestsuite": { - "Projects": [ - "testsuite/" - ] - } -} diff --git a/qa/lib/newlib/newlib.rc.build b/qa/lib/newlib/newlib.rc.build new file mode 100644 index 0000000..b984c1a --- /dev/null +++ b/qa/lib/newlib/newlib.rc.build @@ -0,0 +1,42 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* + +TEST=`{ls *.c|grep -v libposix_} + +CFLAGS=( \ + -g \ + -gdwarf-2 \ + -ggdb \ + -mcmodel=small \ + -Wall \ + -Wno-main \ + -Wno-missing-braces \ + -Wno-parentheses \ + -Wno-unknown-pragmas \ + -O2 \ + -std=gnu11 \ +) + +# test without SIGCHILD emulation +mkdir -p $JEHANNE/arch/$ARCH/qa/lib/newlib/ +for (f in $TEST) { + BINARY=`{basename $f|sed 's/\.c//'} + + debuggable $CC $f libposix_customization.c -o $BINARY $STACKCHECK_CFLAGS $CFLAGS + debuggable mv $BINARY $JEHANNE/arch/$ARCH/qa/lib/newlib/ +} + +# test with SIGCHILD emulation +mkdir -p $JEHANNE/arch/$ARCH/qa/lib/newlib/sigchld/ +for (f in $TEST) { + BINARY=`{basename $f|sed 's/\.c//'} + + debuggable $CC $f libposix_sigchld.c -o $BINARY -DWITH_SIGCHLD $STACKCHECK_CFLAGS $CFLAGS + debuggable mv $BINARY $JEHANNE/arch/$ARCH/qa/lib/newlib/sigchld/ +} + +rm -f *.o + +build testsuite/ diff --git a/qa/lib/newlib/testsuite/build.json b/qa/lib/newlib/testsuite/build.json deleted file mode 100644 index 957eaf5..0000000 --- a/qa/lib/newlib/testsuite/build.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "NewlibTestsuite": { - "Cflags": [ - "-g", - "-gdwarf-2", - "-ggdb", - "-mcmodel=small", - "-O0", - "-Wall", - "-Wno-main", - "-Wno-missing-braces", - "-Wno-parentheses", - "-Wno-unknown-pragmas", - "-iquote", "/hacking/cross/pkgs/newlib/src/newlib/testsuite/include/", - "-fstack-check", - "-Wno-unused-variable", - "-Wno-format", - "-fstack-protector-all", - "-O2", - "-std=gnu11" - ], - "Oflags": [ - "-static" - ], - "Post": [ - "mkdir -p $JEHANNE/arch/$ARCH/qa/lib/newlib/testsuite", - "find -type f -perm /a+x -exec cp {} $JEHANNE/arch/$ARCH/qa/lib/newlib/testsuite/ \\;", - "cp *.runner $JEHANNE/arch/$ARCH/qa/lib/newlib/testsuite/", - "git clean -xdf ." - ], - "Pre": [ - "cat $JEHANNE/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.wctype/twctype.c|sed 's/0x0967/0x0905/g' > twctype.c", - "rm -f *.tag.*" - ], - "SourceFiles": [ - "../libposix_customization.c" - ], - "SourceFilesCmd": [ - "/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.string/tstring.c", - "/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.string/memmove1.c", - "/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.string/memcpy-1.c", - "/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.string/strcmp-1.c", - "/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.stdlib/size_max.c", - "/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.stdlib/atexit.c", - "twctype.c", - "/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.wctype/tiswctype.c", - "/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.wctype/twctrans.c", - "/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.search/hsearchtest.c", - "/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.locale/UTF-8.c", - "/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.stdio/nulprintf.c", - "/hacking/cross/pkgs/newlib/src/newlib/testsuite/newlib.stdio/swprintf.c" - ] - } -} diff --git a/qa/lib/newlib/testsuite/testsuite.rc.build b/qa/lib/newlib/testsuite/testsuite.rc.build new file mode 100644 index 0000000..fb09ca7 --- /dev/null +++ b/qa/lib/newlib/testsuite/testsuite.rc.build @@ -0,0 +1,59 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +NEWLIB_TESTSUITE=$JEHANNE/hacking/cross/pkgs/newlib/src/newlib/testsuite/ +TARGET_DIR=$JEHANNE/arch/$ARCH/qa/lib/newlib/testsuite + +CFLAGS=( \ + -g \ + -gdwarf-2 \ + -ggdb \ + '-mcmodel=small' \ + -Wall \ + -Wno-main \ + -Wno-missing-braces \ + -Wno-parentheses \ + -Wno-unknown-pragmas \ + -iquote $NEWLIB_TESTSUITE/include \ + -fstack-check \ + -Wno-unused-variable \ + -Wno-format \ + -fstack-protector-all \ + -O2 \ + '-std=gnu11' \ + -static \ +) + +cat $NEWLIB_TESTSUITE/newlib.wctype/twctype.c|sed 's/0x0967/0x0905/g' > twctype.c +mkdir -p $TARGET_DIR + +rm -f *.tag.* +$CC $NEWLIB_TESTSUITE/newlib.string/tstring.c -o tstring ../libposix_customization.c $CFLAGS +mv tstring $TARGET_DIR +$CC $NEWLIB_TESTSUITE/newlib.string/memmove1.c -o memmove1 ../libposix_customization.c $CFLAGS +mv memmove1 $TARGET_DIR +$CC $NEWLIB_TESTSUITE/newlib.string/memcpy-1.c -o memcpy-1 ../libposix_customization.c $CFLAGS +mv memcpy-1 $TARGET_DIR +$CC $NEWLIB_TESTSUITE/newlib.string/strcmp-1.c -o strcmp-1 ../libposix_customization.c $CFLAGS +mv strcmp-1 $TARGET_DIR +$CC $NEWLIB_TESTSUITE/newlib.stdlib/size_max.c -o size_max ../libposix_customization.c $CFLAGS +mv size_max $TARGET_DIR +$CC $NEWLIB_TESTSUITE/newlib.stdlib/atexit.c -o atexit ../libposix_customization.c $CFLAGS +mv atexit $TARGET_DIR +$CC twctype.c -o twctype ../libposix_customization.c $CFLAGS +mv twctype $TARGET_DIR +$CC $NEWLIB_TESTSUITE/newlib.wctype/tiswctype.c -o tiswctype ../libposix_customization.c $CFLAGS +mv tiswctype $TARGET_DIR +$CC $NEWLIB_TESTSUITE/newlib.wctype/twctrans.c -o twctrans ../libposix_customization.c $CFLAGS +mv twctrans $TARGET_DIR +$CC $NEWLIB_TESTSUITE/newlib.search/hsearchtest.c -o hsearchtest ../libposix_customization.c $CFLAGS +mv hsearchtest $TARGET_DIR +$CC $NEWLIB_TESTSUITE/newlib.locale/UTF-8.c -o UTF-8 ../libposix_customization.c $CFLAGS +mv UTF-8 $TARGET_DIR +$CC $NEWLIB_TESTSUITE/newlib.stdio/nulprintf.c -o nulprintf ../libposix_customization.c $CFLAGS +mv nulprintf $TARGET_DIR +$CC $NEWLIB_TESTSUITE/newlib.stdio/swprintf.c -o swprintf ../libposix_customization.c $CFLAGS +mv swprintf $TARGET_DIR + +cp *.runner $JEHANNE/arch/$ARCH/qa/lib/newlib/testsuite/ +git clean -xdf . diff --git a/qa/lib/thread/build.json b/qa/lib/thread/build.json deleted file mode 100644 index 50b0951..0000000 --- a/qa/lib/thread/build.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "RegressionTests": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/qa/lib/thread", - "SourceFilesCmd": [ - "thread.c" - ] - } -} diff --git a/qa/lib/thread/thread.rc.build b/qa/lib/thread/thread.rc.build new file mode 100644 index 0000000..e55de2d --- /dev/null +++ b/qa/lib/thread/thread.rc.build @@ -0,0 +1,6 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +compileCommands c $JEHANNE/arch/$ARCH/qa/lib/thread +rm -f *.o diff --git a/qa/qa.rc.build b/qa/qa.rc.build new file mode 100644 index 0000000..1213281 --- /dev/null +++ b/qa/qa.rc.build @@ -0,0 +1,6 @@ +#!/cmd/rc +build kern/ +build lib/c/ +build lib/thread/ +build lib/newlib +build gnu/gcc/ diff --git a/sys/src/cmd/FromYacc.rc.build b/sys/src/cmd/FromYacc.rc.build new file mode 100644 index 0000000..9e7f733 --- /dev/null +++ b/sys/src/cmd/FromYacc.rc.build @@ -0,0 +1,53 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +yacc -d mpc.y && mv y.tab.c mpc.c && mv y.tab.h mpc.h +rm -f *.tag.* +$CC \ + $JEHANNE/sys/src/lib/jehanne/lib9.c \ + mpc.c \ + '-DYYSIZE_T=size_t' \ + -fstack-check \ + -fstack-protector-all \ + -9 \ + -g \ + -gdwarf-2 \ + -ggdb \ + '-mcmodel=small' \ + -O0 \ + -Wall \ + -Werror \ + -Wno-main \ + -Wno-missing-braces \ + -Wno-parentheses \ + -Wno-unknown-pragmas \ + -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 \ + -o mpc +safemove mpc $JEHANNE/arch/$ARCH/cmd +rm mpc.c mpc.h +rm -f *.o diff --git a/sys/src/cmd/acme/acme.rc.build b/sys/src/cmd/acme/acme.rc.build new file mode 100644 index 0000000..3818d49 --- /dev/null +++ b/sys/src/cmd/acme/acme.rc.build @@ -0,0 +1,33 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + acme.c \ + addr.c \ + buff.c \ + cols.c \ + disk.c \ + ecmd.c \ + edit.c \ + elog.c \ + exec.c \ + file.c \ + fsys.c \ + look.c \ + regx.c \ + rows.c \ + scrl.c \ + text.c \ + time.c \ + util.c \ + wind.c \ + xfid.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o acme +safemove acme $JEHANNE/arch/$ARCH/cmd +rm -f *.o + +build aux/ diff --git a/sys/src/cmd/acme/aux/aux.rc.build b/sys/src/cmd/acme/aux/aux.rc.build new file mode 100644 index 0000000..2fd782e --- /dev/null +++ b/sys/src/cmd/acme/aux/aux.rc.build @@ -0,0 +1,8 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +compileCommands c $JEHANNE/arch/$ARCH/aux/acme +rm -f *.o + +build win/ diff --git a/sys/src/cmd/acme/aux/build.json b/sys/src/cmd/acme/aux/build.json deleted file mode 100644 index a0629a8..0000000 --- a/sys/src/cmd/acme/aux/build.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "Cmd": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Projects": [ - "win/" - ], - "Install": "/arch/$ARCH/aux/acme", - "SourceFilesCmd": [ - "mkwnew.c", - "awd.c" - ] - } -} diff --git a/sys/src/cmd/acme/aux/win/build.json b/sys/src/cmd/acme/aux/win/build.json deleted file mode 100644 index c8458c5..0000000 --- a/sys/src/cmd/acme/aux/win/build.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "win": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/aux/acme/", - "Program": "win", - "SourceFiles": [ - "fs.c", - "main.c", - "pipe.c", - "util.c", - "win.c" - ] - } -} diff --git a/sys/src/cmd/acme/aux/win/win.rc.build b/sys/src/cmd/acme/aux/win/win.rc.build new file mode 100644 index 0000000..0507dd0 --- /dev/null +++ b/sys/src/cmd/acme/aux/win/win.rc.build @@ -0,0 +1,16 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + fs.c \ + main.c \ + pipe.c \ + util.c \ + win.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o win +safemove win $JEHANNE/arch/$ARCH/aux/acme +rm -f *.o diff --git a/sys/src/cmd/acme/build.json b/sys/src/cmd/acme/build.json deleted file mode 100644 index 0d43363..0000000 --- a/sys/src/cmd/acme/build.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "acme": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/cmd/", - "Program": "acme", - "SourceFiles": [ - "acme.c", - "addr.c", - "buff.c", - "cols.c", - "disk.c", - "ecmd.c", - "edit.c", - "elog.c", - "exec.c", - "file.c", - "fsys.c", - "look.c", - "regx.c", - "rows.c", - "scrl.c", - "text.c", - "time.c", - "util.c", - "wind.c", - "xfid.c" - ] - }, - "aux": { - "Projects": [ - "aux/" - ] - } -} diff --git a/sys/src/cmd/auth/authsrv.json b/sys/src/cmd/auth/authsrv.json deleted file mode 100644 index de69ba7..0000000 --- a/sys/src/cmd/auth/authsrv.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "authsrv": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/auth/", - "Oflags": [ - "lib/libauthcmd.a" - ], - "Program": "authsrv", - "SourceFiles": [ - "authsrv.c", - "secureidcheck.c" - ] - } -} diff --git a/sys/src/cmd/auth/build.json b/sys/src/cmd/auth/build.json deleted file mode 100644 index de1c07e..0000000 --- a/sys/src/cmd/auth/build.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "Auth": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/auth/", - "Oflags": [ - "lib/libauthcmd.a" - ], - "Projects": [ - "lib/libauthcmd.json", - "factotum/", - "secstore/", - "authsrv.json", - "dsa2pub.json", - "dsa2ssh.json", - "guard.srv.json", - "rsa2csr.json", - "rsa2pub.json", - "rsa2ssh.json", - "rsa2x509.json", - "rsafill.json" - ], - "SourceFilesCmd": [ - "as.c", - "asn12dsa.c", - "asn12rsa.c", - "changeuser.c", - "convkeys.c", - "cron.c", - "debug.c", - "dsagen.c", - "httpauth.c", - "keyfs.c", - "login.c", - "newns.c", - "none.c", - "passwd.c", - "pemdecode.c", - "pemencode.c", - "printnetkey.c", - "readnvram.c", - "rsagen.c", - "uniq.c", - "userpasswd.c", - "warning.c", - "wrkey.c" - ] - } -} diff --git a/sys/src/cmd/auth/dsa2pub.json b/sys/src/cmd/auth/dsa2pub.json deleted file mode 100644 index f5506d9..0000000 --- a/sys/src/cmd/auth/dsa2pub.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "dsa2pub": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/bin/auth/", - "Oflags": [ - "lib/libauthcmd.a" - ], - "Program": "dsa2pub", - "SourceFiles": [ - "dsa2pub.c", - "rsa2any.c" - ] - } -} diff --git a/sys/src/cmd/auth/dsa2ssh.json b/sys/src/cmd/auth/dsa2ssh.json deleted file mode 100644 index e88082e..0000000 --- a/sys/src/cmd/auth/dsa2ssh.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "dsa2ssh": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/bin/auth/", - "Oflags": [ - "lib/libauthcmd.a" - ], - "Program": "dsa2ssh", - "SourceFiles": [ - "dsa2ssh.c", - "rsa2any.c" - ] - } -} diff --git a/sys/src/cmd/auth/factotum/build.json b/sys/src/cmd/auth/factotum/build.json deleted file mode 100644 index 4738c5e..0000000 --- a/sys/src/cmd/auth/factotum/build.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "factotum": { - "Include": [ - "../../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/auth/", - "Program": "factotum", - "SourceFiles": [ - "apop.c", - "chap.c", - "confirm.c", - "ecdsa.c", - "fs.c", - "httpdigest.c", - "log.c", - "p9any.c", - "p9cr.c", - "p9sk1.c", - "pass.c", - "rpc.c", - "rsa.c", - "util.c", - "wep.c", - "wpapsk.c" - ] - } -} diff --git a/sys/src/cmd/auth/factotum/factotum.rc.build b/sys/src/cmd/auth/factotum/factotum.rc.build new file mode 100644 index 0000000..d91f0bc --- /dev/null +++ b/sys/src/cmd/auth/factotum/factotum.rc.build @@ -0,0 +1,27 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + apop.c \ + chap.c \ + confirm.c \ + ecdsa.c \ + fs.c \ + httpdigest.c \ + log.c \ + p9any.c \ + p9cr.c \ + p9sk1.c \ + pass.c \ + rpc.c \ + rsa.c \ + util.c \ + wep.c \ + wpapsk.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o factotum +safemove factotum $JEHANNE/arch/$ARCH/cmd/auth +rm -f *.o diff --git a/sys/src/cmd/auth/guard.srv.json b/sys/src/cmd/auth/guard.srv.json deleted file mode 100644 index 789707a..0000000 --- a/sys/src/cmd/auth/guard.srv.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "guard.srv": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/bin/auth/", - "Oflags": [ - "lib/libauthcmd.a" - ], - "Program": "guard.srv", - "SourceFiles": [ - "guard.srv.c", - "secureidcheck.c" - ] - } -} diff --git a/sys/src/cmd/auth/lib/libauthcmd.json b/sys/src/cmd/auth/lib/libauthcmd.json deleted file mode 100644 index 8745263..0000000 --- a/sys/src/cmd/auth/lib/libauthcmd.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "libauthcmd": { - "Cflags": [ - "-I../" - ], - "Include": [ - "../../../lib/lib.json" - ], - "Library": "libauthcmd.a", - "Install": "./", - "SourceFiles": [ - "keyfmt.c", - "netcheck.c", - "okpasswd.c", - "readwrite.c", - "readarg.c", - "readln.c", - "getauthkey.c", - "log.c", - "error.c", - "fs.c", - "rdbio.c", - "querybio.c", - "wrbio.c", - "private.c", - "getexpiration.c" - ] - } -} diff --git a/sys/src/cmd/auth/rsa2csr.json b/sys/src/cmd/auth/rsa2csr.json deleted file mode 100644 index f52c6c8..0000000 --- a/sys/src/cmd/auth/rsa2csr.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "rsa2csr": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/bin/auth/", - "Oflags": [ - "lib/libauthcmd.a" - ], - "Program": "rsa2csr", - "SourceFiles": [ - "rsa2csr.c", - "rsa2any.c" - ] - } -} diff --git a/sys/src/cmd/auth/rsa2pub.json b/sys/src/cmd/auth/rsa2pub.json deleted file mode 100644 index b6c44b9..0000000 --- a/sys/src/cmd/auth/rsa2pub.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "rsa2pub": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/bin/auth/", - "Oflags": [ - "lib/libauthcmd.a" - ], - "Program": "rsa2pub", - "SourceFiles": [ - "rsa2pub.c", - "rsa2any.c" - ] - } -} diff --git a/sys/src/cmd/auth/rsa2ssh.json b/sys/src/cmd/auth/rsa2ssh.json deleted file mode 100644 index 54ed34d..0000000 --- a/sys/src/cmd/auth/rsa2ssh.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "rsa2ssh": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/bin/auth/", - "Oflags": [ - "lib/libauthcmd.a" - ], - "Program": "rsa2ssh", - "SourceFiles": [ - "rsa2ssh.c", - "rsa2any.c" - ] - } -} diff --git a/sys/src/cmd/auth/rsa2x509.json b/sys/src/cmd/auth/rsa2x509.json deleted file mode 100644 index 1741e35..0000000 --- a/sys/src/cmd/auth/rsa2x509.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "rsa2x509": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/bin/auth/", - "Oflags": [ - "lib/libauthcmd.a" - ], - "Program": "rsa2x509", - "SourceFiles": [ - "rsa2x509.c", - "rsa2any.c" - ] - } -} diff --git a/sys/src/cmd/auth/rsafill.json b/sys/src/cmd/auth/rsafill.json deleted file mode 100644 index 260eed7..0000000 --- a/sys/src/cmd/auth/rsafill.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "rsafill": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/bin/auth/", - "Oflags": [ - "lib/libauthcmd.a" - ], - "Program": "rsafill", - "SourceFiles": [ - "rsafill.c", - "rsa2any.c" - ] - } -} diff --git a/sys/src/cmd/auth/secstore/aescbc.json b/sys/src/cmd/auth/secstore/aescbc.json deleted file mode 100644 index 686cadb..0000000 --- a/sys/src/cmd/auth/secstore/aescbc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "aescbc": { - "Include": [ - "../../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/auth", - "Program": "aescbc", - "SourceFiles": [ - "aescbc.c", - "util.c" - ] - } -} diff --git a/sys/src/cmd/auth/secstore/build.json b/sys/src/cmd/auth/secstore/build.json deleted file mode 100644 index fb3bbe4..0000000 --- a/sys/src/cmd/auth/secstore/build.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "secstore": { - "Include": [ - "../../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/auth/", - "Program": "secstore", - "Projects": [ - "aescbc.json", - "secstored.json", - "secuser.json" - ], - "SourceFiles": [ - "pak.c", - "password.c", - "secstore.c", - "SConn.c", - "util.c" - ] - } -} diff --git a/sys/src/cmd/auth/secstore/secstore.rc.build b/sys/src/cmd/auth/secstore/secstore.rc.build new file mode 100644 index 0000000..40946ba --- /dev/null +++ b/sys/src/cmd/auth/secstore/secstore.rc.build @@ -0,0 +1,81 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + pak.c \ + password.c \ + secstore.c \ + SConn.c \ + util.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o secstore +safemove secstore $JEHANNE/arch/$ARCH/cmd/auth/ +rm -f *.o + +rm -f *.tag.* +$CC \ + aescbc.c \ + util.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o aescbc +safemove aescbc $JEHANNE/arch/$ARCH/cmd/auth/ +rm -f *.o + +rm -f *.tag.* +$CC \ + dirls.c \ + pak.c \ + password.c \ + SConn.c \ + secstored.c \ + ../secureidcheck.c \ + util.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o secstored +safemove secstored $JEHANNE/arch/$ARCH/cmd/auth/ +rm -f *.o + +rm -f *.tag.* +$CC \ + pak.c \ + password.c \ + SConn.c \ + secuser.c \ + util.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o secuser +safemove secuser $JEHANNE/arch/$ARCH/cmd/auth/ +rm -f *.o + + + +{ + "secstore": { + "Include": [ + "../../cmd.json" + ], + "Install": "/arch/$ARCH/cmd/auth/", + "Program": "secstore", + "Projects": [ + "aescbc.json", + "secstored.json", + "secuser.json" + ], + "SourceFiles": [ + "pak.c", + "password.c", + "secstore.c", + "SConn.c", + "util.c" + ] + } +} diff --git a/sys/src/cmd/auth/secstore/secstored.json b/sys/src/cmd/auth/secstore/secstored.json deleted file mode 100644 index 3d272d6..0000000 --- a/sys/src/cmd/auth/secstore/secstored.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "secstored": { - "Include": [ - "../../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/auth/", - "Program": "secstored", - "SourceFiles": [ - "dirls.c", - "pak.c", - "password.c", - "SConn.c", - "secstored.c", - "../secureidcheck.c", - "util.c" - ] - } -} diff --git a/sys/src/cmd/auth/secstore/secuser.json b/sys/src/cmd/auth/secstore/secuser.json deleted file mode 100644 index 9c48a27..0000000 --- a/sys/src/cmd/auth/secstore/secuser.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "secuser": { - "Include": [ - "../../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/auth/", - "Program": "secuser", - "SourceFiles": [ - "pak.c", - "password.c", - "SConn.c", - "secuser.c", - "util.c" - ] - } -} diff --git a/sys/src/cmd/awk/awk.rc.build b/sys/src/cmd/awk/awk.rc.build new file mode 100644 index 0000000..371dfb9 --- /dev/null +++ b/sys/src/cmd/awk/awk.rc.build @@ -0,0 +1,28 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +yacc -d awkgram.y && mv y.tab.c awkgram.c + +cat maketab.rc.template|template|rc > proctab.c + +rm -f *.tag.* +$CC \ + re.c \ + lex.c \ + main.c \ + parse.c \ + proctab.c \ + popen.c \ + tran.c \ + lib.c \ + run.c \ + awkgram.c \ + '-DYYMALLOC=malloc' \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o awk +safemove awk $JEHANNE/arch/$ARCH/cmd + +git clean -xdf ./ +rm -f *.o diff --git a/sys/src/cmd/awk/build.json b/sys/src/cmd/awk/build.json deleted file mode 100644 index f5d2449..0000000 --- a/sys/src/cmd/awk/build.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "awk": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Pre": [ - "yacc -d awkgram.y && mv y.tab.c awkgram.c", - "go run maketab.go > proctab.c" - ], - "Post": [ - "git clean -xdf ./" - ], - "Cflags": [ - "-DYYMALLOC=malloc" - ], - "Install": "/arch/$ARCH/cmd/", - "Program": "awk", - "SourceFiles": [ - "re.c", - "lex.c", - "main.c", - "parse.c", - "proctab.c", - "popen.c", - "tran.c", - "lib.c", - "run.c", - "awkgram.c" - ] - } -} diff --git a/sys/src/cmd/awk/maketab.c b/sys/src/cmd/awk/maketab.c deleted file mode 100644 index 015a7fa..0000000 --- a/sys/src/cmd/awk/maketab.c +++ /dev/null @@ -1,171 +0,0 @@ -/**************************************************************** -Copyright (C) Lucent Technologies 1997 -All Rights Reserved - -Permission to use, copy, modify, and distribute this software and -its documentation for any purpose and without fee is hereby -granted, provided that the above copyright notice appear in all -copies and that both that the copyright notice and this -permission notice and warranty disclaimer appear in supporting -documentation, and that the name Lucent Technologies or any of -its entities not be used in advertising or publicity pertaining -to distribution of the software without specific, written prior -permission. - -LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, -INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. -IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY -SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER -IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF -THIS SOFTWARE. -****************************************************************/ - -/* - * this program makes the table to link function names - * and type indices that is used by execute() in run.c. - * it finds the indices in y.tab.h, produced by yacc. - */ - -#include -#include -#include -#include "awk.h" -#include "y.tab.h" - -struct xx -{ int token; - char *name; - char *pname; -} proc[] = { - { PROGRAM, "program", nil }, - { BOR, "boolop", " || " }, - { AND, "boolop", " && " }, - { NOT, "boolop", " !" }, - { NE, "relop", " != " }, - { EQ, "relop", " == " }, - { LE, "relop", " <= " }, - { LT, "relop", " < " }, - { GE, "relop", " >= " }, - { GT, "relop", " > " }, - { ARRAY, "array", nil }, - { INDIRECT, "indirect", "$(" }, - { SUBSTR, "substr", "substr" }, - { SUB, "sub", "sub" }, - { GSUB, "gsub", "gsub" }, - { INDEX, "sindex", "sindex" }, - { SPRINTF, "awksprintf", "sprintf" }, - { ADD, "arith", " + " }, - { MINUS, "arith", " - " }, - { MULT, "arith", " * " }, - { DIVIDE, "arith", " / " }, - { MOD, "arith", " % " }, - { UMINUS, "arith", " -" }, - { POWER, "arith", " **" }, - { PREINCR, "incrdecr", "++" }, - { POSTINCR, "incrdecr", "++" }, - { PREDECR, "incrdecr", "--" }, - { POSTDECR, "incrdecr", "--" }, - { CAT, "cat", " " }, - { PASTAT, "pastat", nil }, - { PASTAT2, "dopa2", nil }, - { MATCH, "matchop", " ~ " }, - { NOTMATCH, "matchop", " !~ " }, - { MATCHFCN, "matchop", "matchop" }, - { INTEST, "intest", "intest" }, - { PRINTF, "awkprintf", "printf" }, - { PRINT, "printstat", "print" }, - { CLOSE, "closefile", "closefile" }, - { DELETE, "awkdelete", "awkdelete" }, - { SPLIT, "split", "split" }, - { ASSIGN, "assign", " = " }, - { ADDEQ, "assign", " += " }, - { SUBEQ, "assign", " -= " }, - { MULTEQ, "assign", " *= " }, - { DIVEQ, "assign", " /= " }, - { MODEQ, "assign", " %= " }, - { POWEQ, "assign", " ^= " }, - { CONDEXPR, "condexpr", " ?: " }, - { IF, "ifstat", "if(" }, - { WHILE, "whilestat", "while(" }, - { FOR, "forstat", "for(" }, - { DO, "dostat", "do" }, - { IN, "instat", "instat" }, - { NEXT, "jump", "next" }, - { NEXTFILE, "jump", "nextfile" }, - { EXIT, "jump", "exit" }, - { BREAK, "jump", "break" }, - { CONTINUE, "jump", "continue" }, - { RETURN, "jump", "ret" }, - { BLTIN, "bltin", "bltin" }, - { CALL, "call", "call" }, - { ARG, "arg", "arg" }, - { VARNF, "getnf", "NF" }, - { GETLINE, "getline", "getline" }, - { 0, "", "" }, -}; - -#define SIZE (LASTTOKEN - FIRSTTOKEN + 1) -char *table[SIZE]; -char *names[SIZE]; - -void main(int _, char** __) -{ - struct xx *p; - int i, tok; - Biobuf *fp; - char *buf, *toks[3]; - - print("#include \n"); - print("#include \n"); - print("#include \n"); - print("#include \"awk.h\"\n"); - print("#include \"y.tab.h\"\n\n"); - for (i = SIZE; --i >= 0; ) - names[i] = ""; - - if ((fp = Bopen("y.tab.h", OREAD)) == nil) { - fprint(2, "maketab can't open y.tab.h!\n"); - exits("can't open y.tab.h"); - } - print("static char *printname[%d] = {\n", SIZE); - i = 0; - while ((buf = Brdline(fp, '\n')) != nil) { - buf[Blinelen(fp)-1] = '\0'; - tokenize(buf, toks, 3); - if (toks[0] == nil || strcmp("#define", toks[0]) != 0) /* not a valid #define */ - continue; - tok = strtol(toks[2], nil, 10); - if (tok < FIRSTTOKEN || tok > LASTTOKEN) { - fprint(2, "maketab funny token %d %s\n", tok, buf); - exits("funny token"); - } - names[tok-FIRSTTOKEN] = (char *) malloc(strlen(toks[1])+1); - strcpy(names[tok-FIRSTTOKEN], toks[1]); - print("\t(char *) \"%s\",\t/* %d */\n", toks[1], tok); - i++; - } - print("};\n\n"); - - for (p=proc; p->token!=0; p++) - table[p->token-FIRSTTOKEN] = p->name; - print("\nCell *(*proctab[%d])(Node **, int) = {\n", SIZE); - for (i=0; i LASTTOKEN) {\n"); - print(" sprint(buf, \"token %%d\", n);\n"); - print(" return buf;\n"); - print(" }\n"); - print(" return printname[n-FIRSTTOKEN];\n"); - print("}\n"); - exits(0); -} diff --git a/sys/src/cmd/awk/maketab.go b/sys/src/cmd/awk/maketab.go deleted file mode 100644 index 2ca33ee..0000000 --- a/sys/src/cmd/awk/maketab.go +++ /dev/null @@ -1,189 +0,0 @@ -/* - * This file is part of Jehanne. - * - * Copyright (C) 2016 Giacomo Tesio - * - * Jehanne is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2 of the License. - * - * Jehanne is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Jehanne. If not, see . - */ - -/* - * this program makes the table to link function names - * and type indices that is used by execute() in run.c. - * it finds the indices in y.tab.h, produced by yacc. - */ - -package main - -import ( - "bufio" - "log" - "os" - "strings" - "strconv" - "text/template" -) - -type Flist struct { - Token string - Name string - Pname string -} - -var flist = []Flist { - { "PROGRAM", "program", "" }, - { "BOR", "boolop", " || " }, - { "AND", "boolop", " && " }, - { "NOT", "boolop", " !" }, - { "NE", "relop", " != " }, - { "EQ", "relop", " == " }, - { "LE", "relop", " <= " }, - { "LT", "relop", " < " }, - { "GE", "relop", " >= " }, - { "GT", "relop", " > " }, - { "ARRAY", "array", "" }, - { "INDIRECT", "indirect", "$(" }, - { "SUBSTR", "substr", "substr" }, - { "SUB", "sub", "sub" }, - { "GSUB", "gsub", "gsub" }, - { "INDEX", "sindex", "sindex" }, - { "SPRINTF", "awksprintf", "sprintf" }, - { "ADD", "arith", " + " }, - { "MINUS", "arith", " - " }, - { "MULT", "arith", " * " }, - { "DIVIDE", "arith", " / " }, - { "MOD", "arith", " % " }, - { "UMINUS", "arith", " -" }, - { "POWER", "arith", " **" }, - { "PREINCR", "incrdecr", "++" }, - { "POSTINCR", "incrdecr", "++" }, - { "PREDECR", "incrdecr", "--" }, - { "POSTDECR", "incrdecr", "--" }, - { "CAT", "cat", " " }, - { "PASTAT", "pastat", "" }, - { "PASTAT2", "dopa2", "" }, - { "MATCH", "matchop", " ~ " }, - { "NOTMATCH", "matchop", " !~ " }, - { "MATCHFCN", "matchop", "matchop" }, - { "INTEST", "intest", "intest" }, - { "PRINTF", "awkprintf", "printf" }, - { "PRINT", "printstat", "print" }, - { "CLOSE", "closefile", "closefile" }, - { "DELETE", "awkdelete", "awkdelete" }, - { "SPLIT", "split", "split" }, - { "ASSIGN", "assign", " = " }, - { "ADDEQ", "assign", " += " }, - { "SUBEQ", "assign", " -= " }, - { "MULTEQ", "assign", " *= " }, - { "DIVEQ", "assign", " /= " }, - { "MODEQ", "assign", " %= " }, - { "POWEQ", "assign", " ^= " }, - { "CONDEXPR", "condexpr", " ?: " }, - { "IF", "ifstat", "if(" }, - { "WHILE", "whilestat", "while(" }, - { "FOR", "forstat", "for(" }, - { "DO", "dostat", "do" }, - { "IN", "instat", "instat" }, - { "NEXT", "jump", "next" }, - { "NEXTFILE", "jump", "nextfile" }, - { "EXIT", "jump", "exit" }, - { "BREAK", "jump", "break" }, - { "CONTINUE", "jump", "continue" }, - { "RETURN", "jump", "ret" }, - { "BLTIN", "bltin", "bltin" }, - { "CALL", "call", "call" }, - { "ARG", "arg", "arg" }, - { "VARNF", "getnf", "NF" }, - { "GETLINE", "getline", "getline" }, - { "", "", "" }, -} - -type Proctab struct { - Code int - Name string - Func string -} - -func getf(token string) Flist { - for i := range flist { - if token == flist[i].Token { - return flist[i] - } - } - return Flist{"","nullproc",""} -} - -func main() { - file, err := os.Open("y.tab.h") - if err != nil { - log.Fatal(err) - } - defer file.Close() - - proctab := make([]Proctab, 0) - - scanner := bufio.NewScanner(file) - for scanner.Scan() { - s := scanner.Text() - if strings.Contains(s, "#define") { - tokens := strings.Split(s, " "); - i, err := strconv.Atoi(tokens[2]) - if err == nil { - f := getf(tokens[1]) - proctab = append(proctab, Proctab{i, tokens[1], f.Name}) - } - } - } - - - if err := scanner.Err(); err != nil { - log.Fatal(err) - } - - tmpl, err := template.New("proctab.c").Parse(`/* automatically generated by maketab */ -#include -#include -#include -#include "awk.h" -#include "y.tab.h" - -static char *printname[{{len .}}] = { -{{ range . }} (char *) "{{.Name}}", /* {{.Code}} */ -{{ end }} -}; - -Cell *(*proctab[{{len .}}])(Node **, int) = { -{{ range . }} {{.Func}}, /* {{.Name}} */ -{{ end }} -}; - -char * -tokname(int n) -{ - static char buf[100]; - - if (n < FIRSTTOKEN || n > LASTTOKEN) { - sprint(buf, "token %d", n); - return buf; - } - return printname[n-FIRSTTOKEN]; -} -`) - if err != nil { - log.Fatal(err) - } - - err = tmpl.Execute(os.Stdout, proctab) - if err != nil { - log.Fatal(err) - } -} diff --git a/sys/src/cmd/awk/maketab.rc.environment b/sys/src/cmd/awk/maketab.rc.environment new file mode 100644 index 0000000..acdea40 --- /dev/null +++ b/sys/src/cmd/awk/maketab.rc.environment @@ -0,0 +1,64 @@ +PROGRAM=(program '') +BOR=(boolop ' || ') +AND=(boolop ' && ') +NOT=(boolop ' !') +NE=(relop ' != ') +EQ=(relop ' == ') +LE=(relop ' <= ') +LT=(relop ' < ') +GE=(relop ' >= ') +GT=(relop ' > ') +ARRAY=(array '') +INDIRECT=(indirect '$(') +SUBSTR=(substr 'substr') +SUB=(sub 'sub') +GSUB=(gsub 'gsub') +INDEX=(sindex 'sindex') +SPRINTF=(awksprintf 'sprintf') +ADD=(arith ' + ') +MINUS=(arith ' - ') +MULT=(arith ' * ') +DIVIDE=(arith ' / ') +MOD=(arith ' % ') +UMINUS=(arith ' -') +POWER=(arith ' **') +PREINCR=(incrdecr '++') +POSTINCR=(incrdecr '++') +PREDECR=(incrdecr '--') +POSTDECR=(incrdecr '--') +CAT=(cat ' ') +PASTAT=(pastat '') +PASTAT2=(dopa2 '') +MATCH=(matchop ' ~ ') +NOTMATCH=(matchop ' !~ ') +MATCHFCN=(matchop 'matchop') +INTEST=(intest 'intest') +PRINTF=(awkprintf 'printf') +PRINT=(printstat 'print') +CLOSE=(closefile 'closefile') +DELETE=(awkdelete 'awkdelete') +SPLIT=(split 'split') +ASSIGN=(assign ' = ') +ADDEQ=(assign ' += ') +SUBEQ=(assign ' -= ') +MULTEQ=(assign ' *= ') +DIVEQ=(assign ' /= ') +MODEQ=(assign ' %= ') +POWEQ=(assign ' ^= ') +CONDEXPR=(condexpr ' ?: ') +IF=(ifstat 'if(') +WHILE=(whilestat 'while(') +FOR=(forstat 'for(') +DO=(dostat 'do') +IN=(instat 'instat') +NEXT=(jump 'next') +NEXTFILE=(jump 'nextfile') +EXIT=(jump 'exit') +BREAK=(jump 'break') +CONTINUE=(jump 'continue') +RETURN=(jump 'ret') +BLTIN=(bltin 'bltin') +CALL=(call 'call') +ARG=(arg 'arg') +VARNF=(getnf 'NF') +GETLINE=(getline 'getline') diff --git a/sys/src/cmd/awk/maketab.rc.template b/sys/src/cmd/awk/maketab.rc.template new file mode 100644 index 0000000..324b4b3 --- /dev/null +++ b/sys/src/cmd/awk/maketab.rc.template @@ -0,0 +1,40 @@ +/* automatically generated by maketab.rc.template */ +#include +#include +#include +#include "awk.h" +#include "y.tab.h" + +#! rfork e +#! . ./maketab.rc.environment +#! GETNAMES='/#define FIRSTTOKEN/,/#define LASTTOKEN/{s/#define //;s/ [0-9]\+$//g;p}' +#! NAMES=`{cat y.tab.h|sed -n $GETNAMES} +#! GETCODES='/#define FIRSTTOKEN/,/#define LASTTOKEN/{s/#define [A-Z0-9]\+ //;p}' +#! CODES=`{cat y.tab.h|sed -n $GETCODES} + +static char *printname[$#NAMES] = { + +#! for (token in `{seq $#NAMES}) { + (char *) "$NAMES($token)", /* $CODES($token) */ +#! } +}; + +Cell *(*proctab[$#NAMES])(Node **, int) = { +#! for (token in `{seq $#NAMES}) { +#! PROC=$$NAMES($token) +#! if( ~ 0 $#PROC ) PROC=(nullproc '') + $PROC(1), /* $NAMES($token) */ +#! } +}; + +char * +tokname(int n) +{ + static char buf[100]; + + if (n < FIRSTTOKEN || n > LASTTOKEN) { + sprint(buf, "token %d", n); + return buf; + } + return printname[n-FIRSTTOKEN]; +} diff --git a/sys/src/cmd/cmd.json b/sys/src/cmd/cmd.json deleted file mode 100644 index 89e2ff5..0000000 --- a/sys/src/cmd/cmd.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "Cmd": { - "Include": [ - "/arch/$ARCH/include/cflags.json" - ], - "Cflags": [ - "-fstack-check", - "-fstack-protector-all" - ], - "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" - ], - "Post": [ - "rm -f *.o" - ], - "Pre": [ - "rm -f *.tag.*" - ] - } -} diff --git a/sys/src/cmd/cmd.rc.build b/sys/src/cmd/cmd.rc.build new file mode 100644 index 0000000..7f03f18 --- /dev/null +++ b/sys/src/cmd/cmd.rc.build @@ -0,0 +1,31 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +mkdir -p $JEHANNE/arch/$ARCH/cmd + +rm -f *.tag.* +compileCommands c $JEHANNE/arch/$ARCH/cmd +rm -f *.o + +build FromYacc.rc.build + +build acme/ +build auth/factotum/ +build hmi/ +build awk/ +build disk/ +build dossrv/ +build exportfs/ +build ip/ +build grep/ +build hjfs/ +build hoc/ +build ndb/ +build ns/ +build rc/ +build rio/ +build sam/ +build samterm/ +build sys/ +build usb/ +build vt/ diff --git a/sys/src/cmd/cmds.json b/sys/src/cmd/cmds.json deleted file mode 100644 index fa65347..0000000 --- a/sys/src/cmd/cmds.json +++ /dev/null @@ -1,118 +0,0 @@ -{ - "Cmd": { - "Include": [ - "cmd.json" - ], - "Install": "/arch/$ARCH/cmd/", - "SourceFilesCmd": [ - "ascii.c", - "basename.c", - "bind.c", - "cal.c", - "cat.c", - "chgrp.c", - "chmod.c", - "cleanname.c", - "cp.c", - "cpu.c", - "date.c", - "dd.c", - "du.c", - "echo.c", - "ed.c", - "fcp.c", - "field.c", - "flip.c", - "hget.c", - "import.c", - "init.c", - "join.c", - "lock.c", - "look.c", - "ls.c", - "mc.c", - "mkdir.c", - "mntgen.c", - "mount.c", - "mtime.c", - "mv.c", - "netstat.c", - "p.c", - "pipefile.c", - "ps.c", - "pstree.c", - "pwd.c", - "ramfs.c", - "rm.c", - "sed.c", - "seq.c", - "sleep.c", - "sort.c", - "split.c", - "srv.c", - "srvfs.c", - "stats.c", - "tail.c", - "tar.c", - "tee.c", - "test.c", - "time.c", - "touch.c", - "tr.c", - "unicode.c", - "uniq.c", - "unmount.c", - "wc.c", - "xargs.c", - "xd.c" - ] - }, - "FromYacc": { - "Include": [ - "cmd.json" - ], - "Pre": [ - "yacc -d mpc.y && mv y.tab.c mpc.c && mv y.tab.h mpc.h" - ], - "Post": [ - "rm mpc.c mpc.h" - ], - "Cflags": [ - "-DYYSIZE_T=size_t" - ], - "Install": "/arch/$ARCH/cmd/", - "Program": "mpc", - "SourceFiles": [ - "/sys/src/lib/jehanne/lib9.c", - "mpc.c" - ] - }, - "Dirs": { - "Include": [ - "cmd.json" - ], - "Install": "/arch/$ARCH/cmd/", - "Projects": [ - "acme/", - "auth/factotum/", - "hmi/", - "awk/", - "disk/build.json", - "dossrv/", - "exportfs/", - "ip/", - "grep/", - "hjfs/", - "hoc/", - "ndb/", - "ns/", - "rc/", - "rio/", - "sam/", - "samterm/", - "sys/", - "usb/", - "vt/" - ] - } -} diff --git a/sys/src/cmd/disk/build.json b/sys/src/cmd/disk/build.json deleted file mode 100644 index 16681e1..0000000 --- a/sys/src/cmd/disk/build.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "disk": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/disk/", - "Projects": [ - "prep/prep.json", - "prep/fdisk.json", - "rofs/" - ], - "SourceFilesCmd": [ - "format.c", - "mkext.c", - "mkfs.c" - ] - } -} diff --git a/sys/src/cmd/disk/disk.rc.build b/sys/src/cmd/disk/disk.rc.build new file mode 100644 index 0000000..aeb2415 --- /dev/null +++ b/sys/src/cmd/disk/disk.rc.build @@ -0,0 +1,11 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +compileCommands c $JEHANNE/arch/$ARCH/cmd/disk +rm -f *.o + +build rofs/ + +build prep/fdisk.rc.build +build prep/ diff --git a/sys/src/cmd/disk/prep/fdisk.json b/sys/src/cmd/disk/prep/fdisk.json deleted file mode 100644 index 7cfdb88..0000000 --- a/sys/src/cmd/disk/prep/fdisk.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "fdisk": { - "Include": [ - "../../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/disk", - "Post": [ - "rm y.tab.[ch]" - ], - "Pre": [ - "yacc -d calc.y" - ], - "Program": "fdisk", - "SourceFiles": [ - "/sys/src/lib/jehanne/lib9.c", - "fdisk.c", - "edit.c", - "y.tab.c" - ] - } -} diff --git a/sys/src/cmd/disk/prep/fdisk.rc.build b/sys/src/cmd/disk/prep/fdisk.rc.build new file mode 100644 index 0000000..80fdf94 --- /dev/null +++ b/sys/src/cmd/disk/prep/fdisk.rc.build @@ -0,0 +1,17 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +yacc -d calc.y +rm -f *.tag.* +$CC \ + $JEHANNE/sys/src/lib/jehanne/lib9.c \ + fdisk.c \ + edit.c \ + y.tab.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o fdisk +safemove fdisk $JEHANNE/arch/$ARCH/cmd/disk +rm y.tab.[ch] +rm -f *.o diff --git a/sys/src/cmd/disk/prep/prep.json b/sys/src/cmd/disk/prep/prep.json deleted file mode 100644 index 3d0f56a..0000000 --- a/sys/src/cmd/disk/prep/prep.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "prep": { - "Include": [ - "../../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/disk", - "Post": [ - "rm -f y.tab.[ch]" - ], - "Pre": [ - "yacc -d calc.y" - ], - "Program": "prep", - "SourceFiles": [ - "/sys/src/lib/jehanne/lib9.c", - "prep.c", - "edit.c", - "y.tab.c" - ] - } -} diff --git a/sys/src/cmd/disk/prep/prep.rc.build b/sys/src/cmd/disk/prep/prep.rc.build new file mode 100644 index 0000000..cf32cfb --- /dev/null +++ b/sys/src/cmd/disk/prep/prep.rc.build @@ -0,0 +1,17 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +yacc -d calc.y +rm -f *.tag.* +$CC \ + $JEHANNE/sys/src/lib/jehanne/lib9.c \ + prep.c \ + edit.c \ + y.tab.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o prep +safemove prep $JEHANNE/arch/$ARCH/cmd/disk +rm -f y.tab.[ch] +rm -f *.o diff --git a/sys/src/cmd/disk/rofs/build.json b/sys/src/cmd/disk/rofs/build.json deleted file mode 100644 index db2e108..0000000 --- a/sys/src/cmd/disk/rofs/build.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "rofs": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/cmd/disk/", - "SourceFilesCmd": [ - "rofs.c", - "mkrofs.c" - ] - } -} diff --git a/sys/src/cmd/disk/rofs/rofs.rc.build b/sys/src/cmd/disk/rofs/rofs.rc.build new file mode 100644 index 0000000..bd24449 --- /dev/null +++ b/sys/src/cmd/disk/rofs/rofs.rc.build @@ -0,0 +1,6 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +compileCommands c $JEHANNE/arch/$ARCH/cmd/disk +rm -f *.o diff --git a/sys/src/cmd/dossrv/build.json b/sys/src/cmd/dossrv/build.json deleted file mode 100644 index 38000fb..0000000 --- a/sys/src/cmd/dossrv/build.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "dossrv": { - "Include": [ - "../cmd.json" - ], - "Cflags": [ - "-fno-aggressive-loop-optimizations", - "-Wno-array-bounds" - ], - "Install": "/arch/$ARCH/cmd/", - "Program": "dossrv", - "SourceFiles": [ - "xfssrv.c", - "xfile.c", - "dosfs.c", - "dossubs.c", - "iotrack.c", - "lock.c", - "chat.c", - "devio.c" - ] - } -} diff --git a/sys/src/cmd/dossrv/dossrv.rc.build b/sys/src/cmd/dossrv/dossrv.rc.build new file mode 100644 index 0000000..825cb27 --- /dev/null +++ b/sys/src/cmd/dossrv/dossrv.rc.build @@ -0,0 +1,21 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + xfssrv.c \ + xfile.c \ + dosfs.c \ + dossubs.c \ + iotrack.c \ + lock.c \ + chat.c \ + devio.c \ + -fno-aggressive-loop-optimizations \ + -Wno-array-bounds \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o dossrv +safemove dossrv $JEHANNE/arch/$ARCH/cmd +rm -f *.o diff --git a/sys/src/cmd/exportfs/build.json b/sys/src/cmd/exportfs/build.json deleted file mode 100644 index e0f5e8f..0000000 --- a/sys/src/cmd/exportfs/build.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "exportfs": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/", - "Program": "exportfs", - "SourceFiles": [ - "exportfs.c", - "exportsrv.c", - "pattern.c" - ] - } -} diff --git a/sys/src/cmd/exportfs/exportfs.rc.build b/sys/src/cmd/exportfs/exportfs.rc.build new file mode 100644 index 0000000..24a20e6 --- /dev/null +++ b/sys/src/cmd/exportfs/exportfs.rc.build @@ -0,0 +1,14 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + exportfs.c \ + exportsrv.c \ + pattern.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o exportfs +safemove exportfs $JEHANNE/arch/$ARCH/cmd +rm -f *.o diff --git a/sys/src/cmd/grep/build.json b/sys/src/cmd/grep/build.json deleted file mode 100644 index b573572..0000000 --- a/sys/src/cmd/grep/build.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "grep": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/", - "Post": [ - "rm y.tab*" - ], - "Pre": [ - "yacc -d grep.y" - ], - "Program": "grep", - "SourceFiles": [ - "/sys/src/lib/jehanne/lib9.c", - "comp.c", - "main.c", - "sub.c", - "y.tab.c" - ] - } -} diff --git a/sys/src/cmd/grep/grep.rc.build b/sys/src/cmd/grep/grep.rc.build new file mode 100644 index 0000000..22913ce --- /dev/null +++ b/sys/src/cmd/grep/grep.rc.build @@ -0,0 +1,18 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +yacc -d grep.y +rm -f *.tag.* +$CC \ + $JEHANNE/sys/src/lib/jehanne/lib9.c \ + comp.c \ + main.c \ + sub.c \ + y.tab.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o grep +safemove grep $JEHANNE/arch/$ARCH/cmd +rm y.tab* +rm -f *.o diff --git a/sys/src/cmd/hjfs/build.json b/sys/src/cmd/hjfs/build.json deleted file mode 100644 index a98f530..0000000 --- a/sys/src/cmd/hjfs/build.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "hjfs": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/", - "Program": "hjfs", - "SourceFiles": [ - "9p.c", - "auth.c", - "buf.c", - "cons.c", - "conv.c", - "dev.c", - "dump.c", - "fs1.c", - "fs2.c", - "main.c" - ] - } -} diff --git a/sys/src/cmd/hjfs/hjfs.rc.build b/sys/src/cmd/hjfs/hjfs.rc.build new file mode 100644 index 0000000..dce9721 --- /dev/null +++ b/sys/src/cmd/hjfs/hjfs.rc.build @@ -0,0 +1,21 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + 9p.c \ + auth.c \ + buf.c \ + cons.c \ + conv.c \ + dev.c \ + dump.c \ + fs1.c \ + fs2.c \ + main.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o hjfs +safemove hjfs $JEHANNE/arch/$ARCH/cmd +rm -f *.o diff --git a/sys/src/cmd/hmi/build.json b/sys/src/cmd/hmi/build.json deleted file mode 100644 index d42707d..0000000 --- a/sys/src/cmd/hmi/build.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "Aux": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/hmi", - "Projects": [ - "console/screenconsole.json", - "console/comconsole.json", - "console/pipeconsole.json", - "realemu/realemu.json", - "realemu/loadcom.json", - "vga/" - ], - "SourceFilesCmd": [ - "mouse.c" - ] - } -} diff --git a/sys/src/cmd/hmi/console/COMConsole.rc.build b/sys/src/cmd/hmi/console/COMConsole.rc.build new file mode 100644 index 0000000..be04a58 --- /dev/null +++ b/sys/src/cmd/hmi/console/COMConsole.rc.build @@ -0,0 +1,16 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +$CC \ + buffer.c \ + comconsole.c \ + passthrough.c \ + serve9p.c \ + utils.c \ + -9 \ + $CFLAGS \ + -static \ + -l9p2000 \ + -ljehanne \ + -o comconsole +safemove comconsole $JEHANNE/arch/$ARCH/cmd/hmi diff --git a/sys/src/cmd/hmi/console/PipeConsole.rc.build b/sys/src/cmd/hmi/console/PipeConsole.rc.build new file mode 100644 index 0000000..711fb5f --- /dev/null +++ b/sys/src/cmd/hmi/console/PipeConsole.rc.build @@ -0,0 +1,16 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +$CC \ + buffer.c \ + pipeconsole.c \ + passthrough.c \ + serve9p.c \ + utils.c \ + -9 \ + $CFLAGS \ + -static \ + -l9p2000 \ + -ljehanne \ + -o pipeconsole +safemove pipeconsole $JEHANNE/arch/$ARCH/cmd/hmi diff --git a/sys/src/cmd/hmi/console/ScreenConsole.rc.build b/sys/src/cmd/hmi/console/ScreenConsole.rc.build new file mode 100644 index 0000000..41a0e57 --- /dev/null +++ b/sys/src/cmd/hmi/console/ScreenConsole.rc.build @@ -0,0 +1,17 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +$CC \ + buffer.c \ + cga.c \ + screenconsole.c \ + keyboard.c \ + serve9p.c \ + utils.c \ + -9 \ + $CFLAGS \ + -static \ + -l9p2000 \ + -ljehanne \ + -o screenconsole +safemove screenconsole $JEHANNE/arch/$ARCH/cmd/hmi diff --git a/sys/src/cmd/hmi/console/comconsole.json b/sys/src/cmd/hmi/console/comconsole.json deleted file mode 100644 index 038b8eb..0000000 --- a/sys/src/cmd/hmi/console/comconsole.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "Console": { - "Include": [ - "/arch/$ARCH/include/cflags.json" - ], - "Install": "/arch/$ARCH/cmd/hmi", - "Cflags": [ - "-9" - ], - "Oflags": [ - "-static", - "-l9p2000", - "-ljehanne" - ], - "Program": "comconsole", - "SourceFiles": [ - "buffer.c", - "comconsole.c", - "passthrough.c", - "serve9p.c", - "utils.c" - ] - } -} diff --git a/sys/src/cmd/hmi/console/console.rc.build b/sys/src/cmd/hmi/console/console.rc.build new file mode 100644 index 0000000..8f3bf87 --- /dev/null +++ b/sys/src/cmd/hmi/console/console.rc.build @@ -0,0 +1,5 @@ +#!/cmd/rc + +build COMConsole.rc.build +build PipeConsole.rc.build +build ScreenConsole.rc.build diff --git a/sys/src/cmd/hmi/console/pipeconsole.json b/sys/src/cmd/hmi/console/pipeconsole.json deleted file mode 100644 index 1a1496e..0000000 --- a/sys/src/cmd/hmi/console/pipeconsole.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "PipeConsole": { - "Include": [ - "/arch/$ARCH/include/cflags.json" - ], - "Install": "/arch/$ARCH/cmd/hmi", - "Cflags": [ - "-9" - ], - "Oflags": [ - "-static", - "-l9p2000", - "-ljehanne" - ], - "Program": "pipeconsole", - "SourceFiles": [ - "buffer.c", - "pipeconsole.c", - "passthrough.c", - "serve9p.c", - "utils.c" - ] - } -} diff --git a/sys/src/cmd/hmi/console/screenconsole.json b/sys/src/cmd/hmi/console/screenconsole.json deleted file mode 100644 index ad5c833..0000000 --- a/sys/src/cmd/hmi/console/screenconsole.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "ScreenConsole": { - "Include": [ - "/arch/$ARCH/include/cflags.json" - ], - "Install": "/arch/$ARCH/cmd/hmi", - "Cflags": [ - "-9" - ], - "Oflags": [ - "-static", - "-l9p2000", - "-ljehanne" - ], - "Program": "screenconsole", - "SourceFiles": [ - "buffer.c", - "cga.c", - "screenconsole.c", - "keyboard.c", - "serve9p.c", - "utils.c" - ] - } -} diff --git a/sys/src/cmd/hmi/hmi.rc.build b/sys/src/cmd/hmi/hmi.rc.build new file mode 100644 index 0000000..100d099 --- /dev/null +++ b/sys/src/cmd/hmi/hmi.rc.build @@ -0,0 +1,10 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +compileCommands c $JEHANNE/arch/$ARCH/cmd/hmi +rm -f *.o + +build console/ +build realemu/ +build vga/ diff --git a/sys/src/cmd/hmi/realemu/loadcom.json b/sys/src/cmd/hmi/realemu/loadcom.json deleted file mode 100644 index 35e3fa3..0000000 --- a/sys/src/cmd/hmi/realemu/loadcom.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "Loadcom": { - "Include": [ - "../../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/hmi", - "SourceFilesCmd": [ - "loadcom.c" - ] - } -} diff --git a/sys/src/cmd/hmi/realemu/realemu.json b/sys/src/cmd/hmi/realemu/realemu.json deleted file mode 100644 index e3c3fc7..0000000 --- a/sys/src/cmd/hmi/realemu/realemu.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "realemu": { - "Cflags": [ - "-I", "/sys/src/kern/$ARCH/" - ], - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/cmd/hmi/", - "Program": "realemu", - "SourceFiles": [ - "arg.c", - "debug.c", - "decode.c", - "fmt.c", - "main.c", - "pit.c", - "xec.c" - ] - } -} diff --git a/sys/src/cmd/hmi/realemu/realemu.rc.build b/sys/src/cmd/hmi/realemu/realemu.rc.build new file mode 100644 index 0000000..971175c --- /dev/null +++ b/sys/src/cmd/hmi/realemu/realemu.rc.build @@ -0,0 +1,29 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + loadcom.c \ + -o loadcom \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS +safemove loadcom $JEHANNE/arch/$ARCH/cmd/hmi +rm -f *.o + +rm -f *.tag.* +$CC \ + arg.c \ + debug.c \ + decode.c \ + fmt.c \ + main.c \ + pit.c \ + xec.c \ + -I $JEHANNE/sys/src/kern/amd64 \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o realemu +safemove realemu $JEHANNE/arch/$ARCH/cmd/hmi +rm -f *.o diff --git a/sys/src/cmd/hmi/vga/build.json b/sys/src/cmd/hmi/vga/build.json deleted file mode 100644 index a717a71..0000000 --- a/sys/src/cmd/hmi/vga/build.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "vga": { - "Cflags": [ - "-I", "/sys/src/kern/$ARCH/" - ], - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/cmd/hmi", - "Program": "vga", - "SourceFiles": [ - "error.c", - "ics534x.c", - "radeon.c", - "s3928.c", - "sc15025.c", - "trio64.c", - "tvp3026.c", - "vga.c", - "vision968.c", - "ch9294.c", - "io.c", - "main.c", - "nvidia.c", - "rgb524.c", - "s3clock.c", - "stg1702.c", - "tvp3020.c", - "tvp3026clock.c", - "virge.c", - "vmware.c", - "clgd542x.c", - "data.c", - "icd2061a.c", - "palette.c", - "rgb524mn.c", - "s3generic.c", - "t2r4.c", - "tvp3025.c", - "vesa.c", - "vision864.c", - "clgd546x.c", - "db.c", - "ics2494.c", - "pci.c", - "s3801.c", - "s3hwgc.c", - "template.c", - "tvp3025clock.c", - "vesadb.c", - "vision964.c" - ] - } -} diff --git a/sys/src/cmd/hmi/vga/vga.rc.build b/sys/src/cmd/hmi/vga/vga.rc.build new file mode 100644 index 0000000..3a7836d --- /dev/null +++ b/sys/src/cmd/hmi/vga/vga.rc.build @@ -0,0 +1,52 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + error.c \ + ics534x.c \ + radeon.c \ + s3928.c \ + sc15025.c \ + trio64.c \ + tvp3026.c \ + vga.c \ + vision968.c \ + ch9294.c \ + io.c \ + main.c \ + nvidia.c \ + rgb524.c \ + s3clock.c \ + stg1702.c \ + tvp3020.c \ + tvp3026clock.c \ + virge.c \ + vmware.c \ + clgd542x.c \ + data.c \ + icd2061a.c \ + palette.c \ + rgb524mn.c \ + s3generic.c \ + t2r4.c \ + tvp3025.c \ + vesa.c \ + vision864.c \ + clgd546x.c \ + db.c \ + ics2494.c \ + pci.c \ + s3801.c \ + s3hwgc.c \ + template.c \ + tvp3025clock.c \ + vesadb.c \ + vision964.c \ + -I $JEHANNE/sys/src/kern/amd64 \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o vga +safemove vga $JEHANNE/arch/$ARCH/cmd/hmi +rm -f *.o diff --git a/sys/src/cmd/hoc/build.json b/sys/src/cmd/hoc/build.json deleted file mode 100644 index 09d83a7..0000000 --- a/sys/src/cmd/hoc/build.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "hoc": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/", - "Post": [ - "rm -f $JEHANNE/sys/src/cmd/hoc/y.tab.[ch]" - ], - "Pre": [ - "yacc -d hoc.y" - ], - "Program": "hoc", - "SourceFiles": [ - "/sys/src/lib/jehanne/lib9.c", - "code.c", - "init.c", - "math.c", - "symbol.c", - "y.tab.c" - ] - } -} diff --git a/sys/src/cmd/hoc/hoc.rc.build b/sys/src/cmd/hoc/hoc.rc.build new file mode 100644 index 0000000..c3c28a9 --- /dev/null +++ b/sys/src/cmd/hoc/hoc.rc.build @@ -0,0 +1,19 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +yacc -d hoc.y +rm -f *.tag.* +$CC \ + $JEHANNE/sys/src/lib/jehanne/lib9.c \ + code.c \ + init.c \ + math.c \ + symbol.c \ + y.tab.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o hoc +safemove hoc $JEHANNE/arch/$ARCH/cmd +rm -f $JEHANNE/sys/src/cmd/hoc/y.tab.[ch] +rm -f *.o diff --git a/sys/src/cmd/ip/build.json b/sys/src/cmd/ip/build.json deleted file mode 100644 index 73431b0..0000000 --- a/sys/src/cmd/ip/build.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "ipcmds": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Cflags": [ - "-fno-strict-aliasing" - ], - "Install": "/arch/$ARCH/cmd/ip", - "Projects": [ - "dhcpd/dhcpd.json", - "dhcpd/dhcpleases.json", - "ipconfig/" - ], - "SourceFilesCmd": [ - "ping.c", - "dhcpclient.c", - "gping.c", - "hogports.c", - "linklocal.c", - "listen.c", - "listen1.c", - "rip.c", - "timesync.c", - "traceroute.c", - "trampoline.c" - ] - } -} diff --git a/sys/src/cmd/ip/dhcpd/dhcpd.json b/sys/src/cmd/ip/dhcpd/dhcpd.json deleted file mode 100644 index 58582a0..0000000 --- a/sys/src/cmd/ip/dhcpd/dhcpd.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "dhcpd": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/cmd/ip", - "Program": "dhcpd", - "SourceFiles": [ - "dhcpd.c", - "db.c", - "ndb.c", - "ping.c" - ] - } -} diff --git a/sys/src/cmd/ip/dhcpd/dhcpd.rc.build b/sys/src/cmd/ip/dhcpd/dhcpd.rc.build new file mode 100644 index 0000000..c9e978f --- /dev/null +++ b/sys/src/cmd/ip/dhcpd/dhcpd.rc.build @@ -0,0 +1,28 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + dhcpd.c \ + db.c \ + ndb.c \ + ping.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o dhcpd +safemove dhcpd $JEHANNE/arch/$ARCH/cmd/ip +rm -f *.o + +rm -f *.tag.* +$CC \ + dhcpleases.c \ + db.c \ + ping.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o dhcpleases +safemove dhcpleases $JEHANNE/arch/$ARCH/cmd/ip +rm -f *.o + diff --git a/sys/src/cmd/ip/dhcpd/dhcpleases.json b/sys/src/cmd/ip/dhcpd/dhcpleases.json deleted file mode 100644 index 3035c64..0000000 --- a/sys/src/cmd/ip/dhcpd/dhcpleases.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "dhcpleases": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/cmd/ip", - "Program": "dhcpleases", - "SourceFiles": [ - "dhcpleases.c", - "db.c", - "ping.c" - ] - } -} diff --git a/sys/src/cmd/ip/ip.rc.build b/sys/src/cmd/ip/ip.rc.build new file mode 100644 index 0000000..ce4160b --- /dev/null +++ b/sys/src/cmd/ip/ip.rc.build @@ -0,0 +1,9 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +compileCommands c $JEHANNE/arch/$ARCH/cmd/ip +rm -f *.o + +build dhcpd/ +build ipconfig/ diff --git a/sys/src/cmd/ip/ipconfig/build.json b/sys/src/cmd/ip/ipconfig/build.json deleted file mode 100644 index 1dfcc28..0000000 --- a/sys/src/cmd/ip/ipconfig/build.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "ipconfig": { - "Include": [ - "../../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/ip", - "Program": "ipconfig", - "SourceFiles": [ - "ipv6.c", - "main.c", - "ppp.c" - ] - } -} diff --git a/sys/src/cmd/ip/ipconfig/ipconfig.rc.build b/sys/src/cmd/ip/ipconfig/ipconfig.rc.build new file mode 100644 index 0000000..06148f6 --- /dev/null +++ b/sys/src/cmd/ip/ipconfig/ipconfig.rc.build @@ -0,0 +1,14 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + ipv6.c \ + main.c \ + ppp.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o ipconfig +safemove ipconfig $JEHANNE/arch/$ARCH/cmd/ip +rm -f *.o diff --git a/sys/src/cmd/ip/ipconfig/kipconfig.json b/sys/src/cmd/ip/ipconfig/kipconfig.json deleted file mode 100644 index 2e0a15a..0000000 --- a/sys/src/cmd/ip/ipconfig/kipconfig.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "ipconfig": { - "Include": [ - "../../kernel.json" - ], - "Install": "/arch/$ARCH/cmd/ip", - "Program": "ipconfig", - "SourceFiles": [ - "ipv6.c", - "main.c", - "ppp.c" - ] - } -} diff --git a/sys/src/cmd/kcmds.json b/sys/src/cmd/kcmds.json deleted file mode 100644 index e8421ce..0000000 --- a/sys/src/cmd/kcmds.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "Kcmds": { - "Include": [ - "kernel.json" - ], - "Install": "/arch/$ARCH/cmd/", - "Projects": [ - "/sys/src/cmd/rc/", - "/sys/src/cmd/ip/ipconfig/kipconfig.json" - ], - "SourceFilesCmd": [ - "bind.c", - "mount.c", - "date.c", - "srv.c", - "echo.c", - "ls.c" - ] - } -} diff --git a/sys/src/cmd/kernel.json b/sys/src/cmd/kernel.json deleted file mode 100644 index d936257..0000000 --- a/sys/src/cmd/kernel.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "KernelCmd": { - "Cflags": [ - "-mcmodel=small", - "-O0", - "-fplan9-extensions", - "-fno-builtin", - "-Wall", - "-Wno-main", - "-Wno-missing-braces", - "-Wno-parentheses", - "-Wno-unknown-pragmas", - "-g" - ], - "Libs": [ - "/arch/$ARCH/lib/libString.a", - "/arch/$ARCH/lib/lib9p.a", - "/arch/$ARCH/lib/libndb.a", - "/arch/$ARCH/lib/libauth.a", - "/arch/$ARCH/lib/libbio.a", - "/arch/$ARCH/lib/libip.a", - "/arch/$ARCH/lib/libjehanne.a" - ], - "Oflags": [ - "-static" - ], - "Pre": [ - "rm -f *.o *.tag.*" - ] - } -} diff --git a/sys/src/cmd/ndb/build.json b/sys/src/cmd/ndb/build.json deleted file mode 100644 index 40ec8c9..0000000 --- a/sys/src/cmd/ndb/build.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "ndb": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/cmd/ndb/", - "Projects": [ - "dns.json", - "dnstcp.json", - "dnsdebug.json", - "dnsgetip.json" - ], - "SourceFilesCmd": [ - "cs.c", - "csquery.c", - "dnsquery.c", - "ipquery.c", - "inform.c", - "mkdb.c", - "mkhash.c", - "mkhosts.c", - "query.c" - ] - } -} diff --git a/sys/src/cmd/ndb/dns.json b/sys/src/cmd/ndb/dns.json deleted file mode 100644 index 54290e7..0000000 --- a/sys/src/cmd/ndb/dns.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "dns": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/ndb/", - "Program": "dns", - "SourceFiles": [ - "convDNS2M.c", - "convM2DNS.c", - "dblookup.c", - "dn.c", - "dnarea.c", - "dnnotify.c", - "dnresolve.c", - "dns.c", - "dnserver.c", - "dnudpserver.c", - "idn.c" - ] - } -} diff --git a/sys/src/cmd/ndb/dns.rc.build b/sys/src/cmd/ndb/dns.rc.build new file mode 100644 index 0000000..335bc10 --- /dev/null +++ b/sys/src/cmd/ndb/dns.rc.build @@ -0,0 +1,22 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + convDNS2M.c \ + convM2DNS.c \ + dblookup.c \ + dn.c \ + dnarea.c \ + dnnotify.c \ + dnresolve.c \ + dns.c \ + dnserver.c \ + dnudpserver.c \ + idn.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o dns +safemove dns $JEHANNE/arch/$ARCH/cmd/ndb +rm -f *.o diff --git a/sys/src/cmd/ndb/dnsdebug.json b/sys/src/cmd/ndb/dnsdebug.json deleted file mode 100644 index bfb8df8..0000000 --- a/sys/src/cmd/ndb/dnsdebug.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "dnsdebug": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/cmd/ndb/", - "Program": "dnsdebug", - "SourceFiles": [ - "convDNS2M.c", - "convM2DNS.c", - "dblookup.c", - "dn.c", - "dnarea.c", - "dnresolve.c", - "dnserver.c", - "dnsdebug.c", - "idn.c" - ] - } -} diff --git a/sys/src/cmd/ndb/dnsdebug.rc.build b/sys/src/cmd/ndb/dnsdebug.rc.build new file mode 100644 index 0000000..471721d --- /dev/null +++ b/sys/src/cmd/ndb/dnsdebug.rc.build @@ -0,0 +1,50 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + convDNS2M.c \ + convM2DNS.c \ + dblookup.c \ + dn.c \ + dnarea.c \ + dnresolve.c \ + dnserver.c \ + dnsdebug.c \ + idn.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o dnsdebug +safemove dnsdebug $JEHANNE/arch/$ARCH/cmd/ndb +rm -f *.o *.tag.* + +$CC \ + convDNS2M.c \ + convM2DNS.c \ + dblookup.c \ + dn.c \ + dnarea.c \ + dnresolve.c \ + dnserver.c \ + dnsgetip.c \ + idn.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o dnsgetip +safemove dnsgetip $JEHANNE/arch/$ARCH/cmd/ndb +rm -f *.o *.tag.* + +compileCommands c $JEHANNE/arch/$ARCH/cmd/ndb \ + cs.c \ + csquery.c \ + dnsquery.c \ + ipquery.c \ + inform.c \ + mkdb.c \ + mkhash.c \ + mkhosts.c \ + query.c + +rm -f *.o *.tag.* diff --git a/sys/src/cmd/ndb/dnsgetip.json b/sys/src/cmd/ndb/dnsgetip.json deleted file mode 100644 index dadad6a..0000000 --- a/sys/src/cmd/ndb/dnsgetip.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "dnsdebug": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/cmd/ndb/", - "Program": "dnsgetip", - "SourceFiles": [ - "convDNS2M.c", - "convM2DNS.c", - "dblookup.c", - "dn.c", - "dnarea.c", - "dnresolve.c", - "dnserver.c", - "dnsgetip.c", - "idn.c" - ] - } -} diff --git a/sys/src/cmd/ndb/dnstcp.json b/sys/src/cmd/ndb/dnstcp.json deleted file mode 100644 index 5f3b981..0000000 --- a/sys/src/cmd/ndb/dnstcp.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "dnstcp": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/cmd/ndb/", - "Program": "dnstcp", - "SourceFiles": [ - "convDNS2M.c", - "convM2DNS.c", - "dblookup.c", - "dn.c", - "dnarea.c", - "dnresolve.c", - "dnserver.c", - "dnstcp.c", - "idn.c" - ] - } -} diff --git a/sys/src/cmd/ndb/dnstcp.rc.build b/sys/src/cmd/ndb/dnstcp.rc.build new file mode 100644 index 0000000..72065b1 --- /dev/null +++ b/sys/src/cmd/ndb/dnstcp.rc.build @@ -0,0 +1,20 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + convDNS2M.c \ + convM2DNS.c \ + dblookup.c \ + dn.c \ + dnarea.c \ + dnresolve.c \ + dnserver.c \ + dnstcp.c \ + idn.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o dnstcp +safemove dnstcp $JEHANNE/arch/$ARCH/cmd/ndb +rm -f *.o diff --git a/sys/src/cmd/ndb/ndb.rc.build b/sys/src/cmd/ndb/ndb.rc.build new file mode 100644 index 0000000..27dfd44 --- /dev/null +++ b/sys/src/cmd/ndb/ndb.rc.build @@ -0,0 +1,3 @@ +build dns.rc.build +build dnsdebug.rc.build +build dnstcp.rc.build diff --git a/sys/src/cmd/ns/build.json b/sys/src/cmd/ns/build.json deleted file mode 100644 index ff212ba..0000000 --- a/sys/src/cmd/ns/build.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "ns": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/ns/", - "SourceFilesCmd": [ - "cat.c", - "clone.c" - ] - } -} diff --git a/sys/src/cmd/ns/ns.rc.build b/sys/src/cmd/ns/ns.rc.build new file mode 100644 index 0000000..e7e5101 --- /dev/null +++ b/sys/src/cmd/ns/ns.rc.build @@ -0,0 +1,19 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + cat.c \ + -o cat \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS +$CC \ + clone.c \ + -o clone \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS +safemove cat $JEHANNE/arch/$ARCH/cmd/ns +safemove clone $JEHANNE/arch/$ARCH/cmd/ns +rm -f *.o diff --git a/sys/src/cmd/pict/build.json b/sys/src/cmd/pict/build.json deleted file mode 100644 index 2eb363c..0000000 --- a/sys/src/cmd/pict/build.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "Cmd": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/pict/", - "SourceFiles": [ - "torgbv.c", - "totruecolor.c", - "writerawimage.c", - "readjpg.c", - "writejpg.c", - "multichan.c", - "readgif.c", - "writegif.c", - "onechan.c", - "readpng.c", - "writepng.c", - "readppm.c", - "writeppm.c", - "readtif.c", - "writetif.c", - "readyuv.c", - "readbmp.c", - "readtga.c", - "readv210.c" - ], - "SourceFilesCmd": [ - "jpg.c", - "tojpg.c", - "gif.c", - "togif.c", - "ppm.c", - "toppm.c", - "png.c", - "topng.c", - "tif.c", - "totif.c", - "yuv.c", - "ico.c", - "toico.c", - "bmp.c", - "tga.c", - "v210.c" - ] - } -} diff --git a/sys/src/cmd/rc/build.json b/sys/src/cmd/rc/build.json deleted file mode 100644 index c399cce..0000000 --- a/sys/src/cmd/rc/build.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "rc": { - "Cflags": [ - "-9" - ], - "Include": [ - "../kernel.json" - ], - "Post": [ - "rm y.tab* x.tab*" - ], - "Pre": [ - "yacc -d syn.y", - "cp y.tab.h x.tab.h" - ], - "Install": "/arch/$ARCH/cmd/", - "Program": "rc", - "SourceFiles": [ - "/sys/src/lib/jehanne/lib9.c", - "code.c", - "exec.c", - "getflags.c", - "glob.c", - "havefork.c", - "here.c", - "io.c", - "jehanne.c", - "lex.c", - "pcmd.c", - "pfnc.c", - "simple.c", - "subr.c", - "trap.c", - "tree.c", - "var.c", - "y.tab.c" - ] - } -} diff --git a/sys/src/cmd/rc/code.c b/sys/src/cmd/rc/code.c index 76963a8..815f67c 100644 --- a/sys/src/cmd/rc/code.c +++ b/sys/src/cmd/rc/code.c @@ -6,6 +6,10 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ #include "rc.h" #include "io.h" @@ -15,6 +19,7 @@ #define c0 t->child[0] #define c1 t->child[1] #define c2 t->child[2] +code *codebuf; int codep, ncode; #define emitf(x) ((void)(codep!=ncode || morecode()), codebuf[codep].f = (x), codep++) #define emiti(x) ((void)(codep!=ncode || morecode()), codebuf[codep].i = (x), codep++) @@ -73,12 +78,8 @@ fnstr(tree *t) { io *f = openstr(); void *v; - extern char nl; - char svnl = nl; - nl = ';'; pfmt(f, "%t", t); - nl = svnl; v = f->strp; f->strp = 0; closeio(f); @@ -88,12 +89,19 @@ fnstr(tree *t) void outcode(tree *t, int eflag) { + static int line; int p, q; tree *tt; + char *f; if(t==0) return; if(t->type!=NOT && t->type!=';') runq->iflast = 0; + if(t->line != line){ + line = t->line; + emitf(Xsrcline); + emiti(line); + } switch(t->type){ default: pfmt(err, "bad type %d in outcode\n", t->type); @@ -104,9 +112,11 @@ outcode(tree *t, int eflag) emitf(Xdol); break; case '"': + emitf(Xmark); emitf(Xmark); outcode(c0, eflag); - emitf(Xqdol); + emitf(Xdol); + emitf(Xqw); break; case SUB: emitf(Xmark); @@ -181,6 +191,12 @@ outcode(tree *t, int eflag) emitf(Xfn); p = emiti(0); emits(fnstr(c1)); + if((f = curfile(runq)) != nil){ + emitf(Xsrcfile); + emits(estrdup(f)); + } + emitf(Xsrcline); + emiti(runq->lexline); outcode(c1, eflag); emitf(Xunlocal); /* get rid of $* */ emitf(Xreturn); @@ -482,10 +498,11 @@ codefree(code *cp) || p->f==Xrdwr || p->f==Xasync || p->f==Xbackq || p->f==Xcase || p->f==Xfalse || p->f==Xfor || p->f==Xjump + || p->f==Xsrcline || p->f==Xsubshell || p->f==Xtrue) p++; else if(p->f==Xdup || p->f==Xpipefd) p+=2; else if(p->f==Xpipe) p+=4; - else if(p->f==Xglobs) free(p[1].s), p+=2; + else if(p->f==Xglobs || p->f==Xsrcfile) free(p[1].s), p+=2; else if(p->f==Xword || p->f==Xdelhere) free((++p)->s); else if(p->f==Xfn){ free(p[2].s); diff --git a/sys/src/cmd/rc/exec.c b/sys/src/cmd/rc/exec.c index 8c513b6..6bc41b0 100644 --- a/sys/src/cmd/rc/exec.c +++ b/sys/src/cmd/rc/exec.c @@ -6,6 +6,10 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ #include "rc.h" #include "getflags.h" @@ -23,15 +27,16 @@ start(code *c, int pc, var *local) struct thread *p = new(struct thread); p->code = codecopy(c); + p->line = runq?runq->line:0; p->pc = pc; p->argv = 0; - p->redir = p->startredir = runq?runq->redir:0; + p->redir = p->startredir = runq?runq->redir:nil; p->local = local; - p->cmdfile = 0; + p->cmdfile = nil; p->cmdfd = 0; p->eof = 0; p->iflag = 0; - p->lineno = 1; + p->lineno = runq ? runq->lineno : 1; p->ret = runq; runq = p; } @@ -132,6 +137,21 @@ pushredir(int type, int from, int to) runq->redir = rp; } +void +shuffleredir(void) +{ + redir **rr, *rp; + + rp = runq->redir; + if(rp==0) + return; + runq->redir = rp->next; + rp->next = runq->startredir; + for(rr = &runq->redir; *rr != rp->next; rr = &((*rr)->next)) + ; + *rr = rp; +} + var* newvar(char *name, var *next) { @@ -199,6 +219,8 @@ main(int argc, char *argv[]) bootstrap[i++].f = Xexit; bootstrap[i].i = 0; start(bootstrap, 1, (var *)0); + runq->cmdfile = strdup("rc"); + runq->lexline = 0; /* prime bootstrap argv */ pushlist(); argv0 = estrdup(argvcopy[0]); @@ -232,7 +254,7 @@ main(int argc, char *argv[]) * Xdelfn(name) delete function definition * Xdeltraps(names) delete named traps * Xdol(name) get variable value - * Xqdol(name) concatenate variable components + * Xqw(list) quote list, push result * Xdup[i j] dup file descriptor * Xexit rc exits with status * Xfalse{...} execute {} if false @@ -259,6 +281,8 @@ main(int argc, char *argv[]) * Xunlocal delete local variable * Xword[string] push string * Xwrite(file)[fd] open file to write + * Xsrcline[line] set current line number + * Xsrcfile[file] set current file name */ void @@ -457,6 +481,7 @@ Xreturn(void) turfredir(); while(p->argv) poplist(); codefree(p->code); + free(p->cmdfile); runq = p->ret; free(p); if(runq==0) @@ -698,19 +723,22 @@ Xdol(void) } void -Xqdol(void) +Xqw(void) { - word *a; char *s; + word *a; - if(count(runq->argv->words)!=1){ - Xerror1("variable name not singleton!"); + a = runq->argv->words; + if(a && a->next == 0){ + runq->argv->words = 0; + poplist(); + a->next = runq->argv->words; + runq->argv->words = a; return; } - s = Str(runq->argv->words); - a = vlook(s)->val; + s = list2str(a); poplist(); - Pushword(list2str(a)); + Pushword(s); } word* @@ -789,8 +817,7 @@ Xcount(void) Xerror1("variable name not singleton!"); return; } - s = runq->argv->words->word; - deglob(s); + s = Str(runq->argv->words); n = 0; for(t = s;'0'<=*t && *t<='9';t++) n = n*10+*t-'0'; if(n==0 || *t){ @@ -928,10 +955,8 @@ Xrdcmds(void) Noerror(); if(yyparse()){ if(!p->iflag || p->eof && !Eintr()){ - if(p->cmdfile) - free(p->cmdfile); closeio(p->cmdfd); - Xreturn(); /* should this be omitted? */ + Xreturn(); } else{ if(Eintr()){ @@ -949,13 +974,22 @@ Xrdcmds(void) freenodes(); } +char* +curfile(thread *p) +{ + for(; p != nil; p = p->ret) + if(p->cmdfile != nil) + return p->cmdfile; + return "unknown"; +} + void Xerror(char *s) { if(strcmp(argv0, "rc")==0 || strcmp(argv0, "/cmd/rc")==0) - pfmt(err, "rc: %s: %r\n", s); + pfmt(err, "rc:%d: %s: %r\n", runq->line, s); else - pfmt(err, "rc (%s): %s: %r\n", argv0, s); + pfmt(err, "%s:%d: %s: %r\n", curfile(runq), runq->line, s); flush(err); setstatus("error"); while(!runq->iflag) Xreturn(); @@ -965,9 +999,9 @@ void Xerror1(char *s) { if(strcmp(argv0, "rc")==0 || strcmp(argv0, "/cmd/rc")==0) - pfmt(err, "rc: %s\n", s); + pfmt(err, "rc:%d: %s\n", runq->line, s); else - pfmt(err, "rc (%s): %s\n", argv0, s); + pfmt(err, "%s:%d: %s\n", curfile(runq), runq->line, s); flush(err); setstatus("error"); while(!runq->iflag) Xreturn(); @@ -1024,3 +1058,16 @@ Xglob(void) { globlist(runq->argv->words); } + +void +Xsrcline(void) +{ + runq->line = runq->code[runq->pc++].i; +} + +void +Xsrcfile(void) +{ + free(runq->cmdfile); + runq->cmdfile = strdup(runq->code[runq->pc++].s); +} diff --git a/sys/src/cmd/rc/exec.h b/sys/src/cmd/rc/exec.h index 5cb4d44..4087a9d 100644 --- a/sys/src/cmd/rc/exec.h +++ b/sys/src/cmd/rc/exec.h @@ -6,15 +6,19 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ /* * Definitions used in the interpreter */ extern void Xappend(void), Xasync(void), Xbackq(void), Xbang(void), Xclose(void); -extern void Xconc(void), Xcount(void), Xdelfn(void), Xdol(void), Xqdol(void), Xdup(void); +extern void Xconc(void), Xcount(void), Xdelfn(void), Xdol(void), Xqw(void), Xdup(void); extern void Xexit(void), Xfalse(void), Xfn(void), Xfor(void), Xglob(void); extern void Xjump(void), Xmark(void), Xmatch(void), Xpipe(void), Xread(void); -extern void Xrdwr(void); +extern void Xrdwr(void), Xsrcline(void), Xsrcfile(void); extern void Xrdfn(void), Xunredir(void), Xstar(void), Xreturn(void), Xsubshell(void); extern void Xtrue(void), Xword(void), Xglobs(void), Xwrite(void), Xpipefd(void), Xcase(void); extern void Xlocal(void), Xunlocal(void), Xassign(void), Xsimple(void), Xpopm(void); @@ -51,12 +55,14 @@ struct redir{ struct thread{ union code *code; /* code for this thread */ int pc; /* code[pc] is the next instruction */ + int line; /* source code line */ struct list *argv; /* argument stack */ struct redir *redir; /* redirection stack */ struct redir *startredir; /* redir inheritance point */ struct var *local; /* list of local variables */ char *cmdfile; /* file name in Xrdcmd */ struct io *cmdfd; /* file descriptor for Xrdcmd */ + int lexline; /* file descriptor line */ int iflast; /* static `if not' checking */ int eof; /* is cmdfd at eof? */ int iflag; /* interactive? */ @@ -64,7 +70,7 @@ struct thread{ int pid; /* process for Xpipewait to wait for */ char status[NSTATUS]; /* status for Xpipewait */ tree *treenodes; /* tree nodes created by this process */ - thread *ret; /* who continues when this finishes */ + thread *ret; /* who continues when this finishes */ }; thread *runq; code *codecopy(code*); @@ -83,3 +89,4 @@ int execforkexec(void); void execexit(void), execshift(void); void execwait(void), execumask(void), execdot(void), execflag(void); void execfunc(var*), execcmds(io *); +char *curfile(thread*); diff --git a/sys/src/cmd/rc/fns.h b/sys/src/cmd/rc/fns.h index d617e87..c47e715 100644 --- a/sys/src/cmd/rc/fns.h +++ b/sys/src/cmd/rc/fns.h @@ -6,6 +6,10 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ void Abort(void); void Closedir(int); @@ -21,15 +25,15 @@ int Globsize(char*); int Isatty(int); void Noerror(void); int Opendir(char*); -int Read(int, void*, int); +long Read(int, void*, long); int Readdir(int, void*, int); -int Seek(int, int, int); +long Seek(int, long, long); void Trapinit(void); void Unlink(char*); void Updenv(void); void Vinit(void); int Waitfor(int, int); -int Write(int, void*, int); +long Write(int, void*, long); void addwaitpid(int); int advance(void); int back(int); @@ -46,7 +50,7 @@ void freewords(word*); word* globlist(word*); int havewaitpid(int); int idchr(int); -void inttoascii(char*, int); +void inttoascii(char*, long); void kinit(void); int mapfd(int); int match(char*, char*, int); @@ -61,9 +65,10 @@ void pushlist(void); void pushredir(int, int, int); word* pushword(char*); void readhere(void); -word* searchpath(char*); +word* searchpath(char*, char*); void setstatus(char*); void setvar(char*, word*); +void shuffleredir(void); void skipnl(void); void start(code*, int, var*); int truestatus(void); diff --git a/sys/src/cmd/rc/glob.c b/sys/src/cmd/rc/glob.c index c9b8c71..b29a8cb 100644 --- a/sys/src/cmd/rc/glob.c +++ b/sys/src/cmd/rc/glob.c @@ -6,6 +6,10 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ #include "rc.h" #include "exec.h" @@ -28,13 +32,13 @@ deglob(char *s) return b; } -int +static int globcmp(const void *s, const void *t) { return strcmp(*(char**)s, *(char**)t); } -void +static void globsort(word *left, word *right) { char **list; @@ -69,9 +73,15 @@ globdir(word *list, char *p, char *name, char *namep) { char *t, *newp; int f; - /* scan the pattern looking for a component with a metacharacter in it */ + + /* append slashes, Readdir() already filtered directories */ + while(*p=='/'){ + *namep++=*p++; + *namep='\0'; + } if(*p=='\0') return newword(name, list); + /* scan the pattern looking for a component with a metacharacter in it */ t = namep; newp = p; while(*newp){ diff --git a/sys/src/cmd/rc/havefork.c b/sys/src/cmd/rc/havefork.c index c4ff54a..0ca5de1 100644 --- a/sys/src/cmd/rc/havefork.c +++ b/sys/src/cmd/rc/havefork.c @@ -6,6 +6,10 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ #include "rc.h" #include "getflags.h" @@ -194,7 +198,8 @@ Xpipefd(void) default: addwaitpid(pid); sys_close(sidefd); - pushredir(ROPEN, mainfd, mainfd); /* isn't this a noop? */ + pushredir(ROPEN, mainfd, mainfd); + shuffleredir(); /* shuffle redir to bottom of stack for turfredir() */ strcpy(name, Fdprefix); inttoascii(name+strlen(name), mainfd); pushword(name); diff --git a/sys/src/cmd/rc/here.c b/sys/src/cmd/rc/here.c index 4d37218..665d284 100644 --- a/sys/src/cmd/rc/here.c +++ b/sys/src/cmd/rc/here.c @@ -6,6 +6,10 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ #include "rc.h" #include "exec.h" @@ -32,10 +36,13 @@ hexnum(char *p, int n) tree* heredoc(tree *tag) { - struct here *h = new(struct here); + struct here *h; - if(tag->type != WORD) + if(tag->type != WORD){ yyerror("Bad here tag"); + return nil; + } + h = new(struct here); h->next = 0; if(here) *ehere = h; diff --git a/sys/src/cmd/rc/jehanne.c b/sys/src/cmd/rc/jehanne.c index 90536b7..0aa7422 100644 --- a/sys/src/cmd/rc/jehanne.c +++ b/sys/src/cmd/rc/jehanne.c @@ -481,20 +481,20 @@ Unlink(char *name) sys_remove(name); } -int -Write(int fd, void *buf, int cnt) +long +Write(int fd, void *buf, long cnt) { return jehanne_write(fd, buf, cnt); } -int -Read(int fd, void *buf, int cnt) +long +Read(int fd, void *buf, long cnt) { return jehanne_read(fd, buf, cnt); } -int -Seek(int fd, int cnt, int whence) +long +Seek(int fd, long cnt, long whence) { return sys_seek(fd, cnt, whence); } diff --git a/sys/src/cmd/rc/lex.c b/sys/src/cmd/rc/lex.c index 1a815b5..0def5f4 100644 --- a/sys/src/cmd/rc/lex.c +++ b/sys/src/cmd/rc/lex.c @@ -6,6 +6,10 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ #include "rc.h" #include "exec.h" @@ -34,6 +38,12 @@ int future = EOF; int doprompt = 1; int inquote; int incomm; +int lastc; +int ndot; +int nerror; +int nlexpath; +int lexpathsz; + /* * Look ahead in the input stream */ @@ -48,13 +58,14 @@ nextc(void) /* * Consume the lookahead character. */ - int advance(void) { int c = nextc(); lastc = future; future = EOF; + if(c == '\n') + runq->lexline++; return c; } /* diff --git a/sys/src/cmd/rc/pcmd.c b/sys/src/cmd/rc/pcmd.c index 16f031e..7e0f9e5 100644 --- a/sys/src/cmd/rc/pcmd.c +++ b/sys/src/cmd/rc/pcmd.c @@ -6,11 +6,15 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ #include "rc.h" #include "io.h" #include "fns.h" -char nl='\n'; /* change to semicolon for bourne-proofing */ + #define c0 t->child[0] #define c1 t->child[1] #define c2 t->child[2] @@ -85,7 +89,7 @@ pcmd(io *f, tree *t) case ';': if(c0){ if(c1) - pfmt(f, "%t%c%t", c0, nl, c1); + pfmt(f, "%t\n%t", c0, c1); else pfmt(f, "%t", c0); } else pfmt(f, "%t", c1); @@ -115,6 +119,7 @@ pcmd(io *f, tree *t) break; case PIPEFD: case REDIR: + pchr(f, ' '); switch(t->rtype){ case HERE: pchr(f, '<'); diff --git a/sys/src/cmd/rc/pfnc.c b/sys/src/cmd/rc/pfnc.c index 32f9499..0d8f6e5 100644 --- a/sys/src/cmd/rc/pfnc.c +++ b/sys/src/cmd/rc/pfnc.c @@ -6,6 +6,10 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ #include "rc.h" #include "exec.h" @@ -60,7 +64,8 @@ struct{ Xglobs, "Xglobs", Xrdfn, "Xrdfn", Xsimple, "Xsimple", - Xqdol, "Xqdol", + Xqw, "Xqw", + Xsrcline, "Xsrcline", 0}; void @@ -70,8 +75,8 @@ pfnc(io *fd, thread *t) void (*fn)(void) = t->code[t->pc].f; list *a; - pfmt(fd, "pid %d cycle %p %d ", getpid(), t->code, t->pc); - for(i = 0; fname[i].f; i++) + pfmt(fd, "%s:%d: pid %d cycle %p %d ", t->cmdfile, t->line, getpid(), t->code, t->pc); + for(i = 0; fname[i].f; i++) if(fname[i].f == fn){ pstr(fd, fname[i].name); break; diff --git a/sys/src/cmd/rc/rc.h b/sys/src/cmd/rc/rc.h index 4314f04..75694c2 100644 --- a/sys/src/cmd/rc/rc.h +++ b/sys/src/cmd/rc/rc.h @@ -6,6 +6,10 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ #include #include #include @@ -41,12 +45,14 @@ struct tree{ char *str; int quoted; int iskw; + int line; tree *child[3]; tree *next; }; tree *newtree(void); tree *token(char*, int), *klook(char*), *tree1(int, tree*); tree *tree2(int, tree*, tree*), *tree3(int, tree*, tree*, tree*); +tree* treeeq(tree *c0, tree *c2); tree *mung1(tree*, tree*), *mung2(tree*, tree*, tree*); tree *mung3(tree*, tree*, tree*, tree*), *epimung(tree*, tree*); tree *simplemung(tree*), *heredoc(tree*); @@ -97,8 +103,8 @@ var *gvar[NVAR]; /* hash for globals */ #define new(type) ((type *)emalloc(sizeof(type))) -void *emalloc(int); -void *erealloc(void *, int); +void *emalloc(long); +void *erealloc(void *, long); char *estrdup(char*); #define NOFILE 128 /* should come from */ @@ -125,10 +131,11 @@ int mypid; */ #define onebyte(c) ((c&0x80)==0x00) -char **argp; -char **args; -int nerror; /* number of errors encountered during compilation */ -int doprompt; /* is it time for a prompt? */ +extern char **argp; +extern char **args; +extern int nerror; /* number of errors encountered during compilation */ +extern int doprompt; /* is it time for a prompt? */ + /* * Which fds are the reading/writing end of a pipe? * Unfortunately, this can vary from system to system. @@ -143,7 +150,8 @@ char *Rcmain, *Fdprefix; * How many dot commands have we executed? * Used to ensure that -v flag doesn't print rcmain. */ -int ndot; +extern int ndot; +extern int lastc; +extern int lastword; char *getstatus(void); -int lastc; -int lastword; + diff --git a/sys/src/cmd/rc/rc.rc.build b/sys/src/cmd/rc/rc.rc.build new file mode 100644 index 0000000..d49c5d1 --- /dev/null +++ b/sys/src/cmd/rc/rc.rc.build @@ -0,0 +1,41 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +yacc -d syn.y +cp y.tab.h x.tab.h +rm -f *.o *.tag.* +$CC \ + $JEHANNE/sys/src/lib/jehanne/lib9.c \ + code.c \ + exec.c \ + getflags.c \ + glob.c \ + havefork.c \ + here.c \ + io.c \ + jehanne.c \ + lex.c \ + pcmd.c \ + pfnc.c \ + simple.c \ + subr.c \ + trap.c \ + tree.c \ + var.c \ + y.tab.c \ + -9 \ + '-mcmodel=small' \ + -O0 \ + -fplan9-extensions \ + -fno-builtin \ + -Wall \ + -Wno-main \ + -Wno-missing-braces \ + -Wno-parentheses \ + -Wno-unknown-pragmas \ + -g \ + -ljehanne \ + -static \ + -o rc +safemove rc $JEHANNE/arch/$ARCH/cmd +rm y.tab* x.tab* diff --git a/sys/src/cmd/rc/simple.c b/sys/src/cmd/rc/simple.c index c2b15b6..bcbc7e0 100644 --- a/sys/src/cmd/rc/simple.c +++ b/sys/src/cmd/rc/simple.c @@ -6,6 +6,10 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ /* * Maybe `simple' is a misnomer. @@ -21,7 +25,14 @@ int exitnext(void){ union code *c=&runq->code[runq->pc]; - while(c->f==Xpopredir) c++; + while(1){ + if(c->f==Xpopredir || c->f==Xunlocal) + c++; + else if(c->f==Xsrcline || c->f==Xsrcfile) + c += 2; + else + break; + } return c->f==Xexit; } @@ -79,7 +90,6 @@ Xsimple(void) } } } -struct word nullpath = { "", 0}; void doredir(redir *rp) @@ -104,16 +114,18 @@ doredir(redir *rp) } word* -searchpath(char *w) +searchpath(char *w, char *v) { + static struct word nullpath = { "", 0 }; word *path; - if(strncmp(w, "/", 1)==0 - || strncmp(w, "#", 1)==0 - || strncmp(w, "./", 2)==0 - || strncmp(w, "../", 3)==0 - || (path = vlook(ENV_PATH)->val)==0) - path=&nullpath; - return path; + + if(w[0] && w[0] != '/' && w[0] != '#' && + (w[0] != '.' || (w[1] && w[1] != '/' && (w[1] != '.' || w[2] && w[2] != '/')))){ + path = vlook(v)->val; + if(path) + return path; + } + return &nullpath; } void @@ -125,7 +137,7 @@ execexec(void) return; } doredir(runq->redir); - Execute(runq->argv->words, searchpath(runq->argv->words->word)); + Execute(runq->argv->words, searchpath(runq->argv->words->word, ENV_PATH)); poplist(); Xexit(); } @@ -162,24 +174,19 @@ execcd(void) char *dir; setstatus("can't cd"); - cdpath = vlook(ENV_CDPATH)->val; switch(count(a)){ default: pfmt(err, "Usage: cd [directory]\n"); break; case 2: - if(a->next->word[0]=='/' || cdpath==0) - cdpath = &nullpath; - for(; cdpath; cdpath = cdpath->next){ + a = a->next; + for(cdpath = searchpath(a->word, ENV_CDPATH); cdpath; cdpath = cdpath->next){ if(cdpath->word[0] != '\0') - dir = smprint("%s/%s", cdpath->word, - a->next->word); + dir = smprint("%s/%s", cdpath->word, a->word); else - dir = estrdup(a->next->word); - + dir = estrdup(a->word); if(dochdir(dir) >= 0){ - if(cdpath->word[0] != '\0' && - strcmp(cdpath->word, ".") != 0) + if(cdpath->word[0] != '\0' && strcmp(cdpath->word, ".") != 0) pfmt(err, "%s\n", dir); free(dir); setstatus(""); @@ -188,7 +195,7 @@ execcd(void) free(dir); } if(cdpath==0) - pfmt(err, "Can't cd %s: %r\n", a->next->word); + pfmt(err, "Can't cd %s: %r\n", a->word); break; case 1: a = vlook(ENV_HOME)->val; @@ -199,7 +206,7 @@ execcd(void) pfmt(err, "Can't cd %s: %r\n", a->word); } else - pfmt(err, "Can't cd -- $HOME empty\n"); + pfmt(err, "Can't cd -- $%s empty\n", ENV_HOME); break; } poplist(); @@ -273,6 +280,7 @@ void execcmds(io *f) { static int first = 1; + if(first){ rdcmds[0].i = 1; rdcmds[1].f = Xrdcmds; @@ -332,6 +340,7 @@ execdot(void) } else eflagok = 1; + popword(); if(p->argv->words && strcmp(p->argv->words->word, "-i")==0){ iflag = 1; @@ -345,7 +354,7 @@ execdot(void) zero = estrdup(p->argv->words->word); popword(); fd = -1; - for(path = searchpath(zero); path; path = path->next){ + for(path = searchpath(zero, ENV_PATH); path; path = path->next){ if(path->word[0] != '\0') file = smprint("%s/%s", path->word, zero); else @@ -367,11 +376,13 @@ execdot(void) Xerror(".: can't open"); return; } + /* set up for a new command loop */ start(dotcmds, 1, (struct var *)0); pushredir(RCLOSE, fd, 0); runq->cmdfile = zero; runq->cmdfd = openfd(fd); + runq->lexline = 1; runq->iflag = iflag; runq->iflast = 0; /* push $* value */ @@ -461,7 +472,7 @@ execwhatis(void){ /* mildly wrong -- should fork before writing */ break; } if(!bp->name){ - for(path = searchpath(a->word); path; + for(path = searchpath(a->word, ENV_PATH); path; path = path->next){ if(path->word[0] != '\0') file = smprint("%s/%s", diff --git a/sys/src/cmd/rc/subr.c b/sys/src/cmd/rc/subr.c index f3a0d9a..796cfe0 100644 --- a/sys/src/cmd/rc/subr.c +++ b/sys/src/cmd/rc/subr.c @@ -6,6 +6,10 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ #include "rc.h" #include "exec.h" @@ -13,20 +17,22 @@ #include "fns.h" void * -emalloc(int n) +emalloc(long n) { void *p = malloc(n); if(p==0) panic("Can't malloc %d bytes", n); + setmalloctag(p, getcallerpc()); return p; } void* -erealloc(void *p, int n) +erealloc(void *p, long n) { p = realloc(p, n); if(p==0 && n!=0) panic("Can't realloc %d bytes\n", n); + setrealloctag(p, getcallerpc()); return p; } @@ -79,7 +85,7 @@ iacvt(int n) } void -inttoascii(char *s, int n) +inttoascii(char *s, long n) { bp = s; iacvt(n); diff --git a/sys/src/cmd/rc/syn.y b/sys/src/cmd/rc/syn.y index 051c9e8..6fea17f 100644 --- a/sys/src/cmd/rc/syn.y +++ b/sys/src/cmd/rc/syn.y @@ -17,7 +17,7 @@ struct tree *tree; }; %type line paren brace body cmdsa cmdsan assign epilog redir -%type cmd simple first word comword keyword words +%type cmd simple first word comword keyword words peq varname %type NOT FOR IN WHILE IF TWIDDLE BANG SUBSHELL SWITCH FN %type WORD REDIR DUP PIPE %% @@ -70,7 +70,9 @@ cmd: {$$=0;} | SUBSHELL cmd {$$=mung1($1, $2);} | FN words brace {$$=tree2(FN, $2, $3);} | FN words {$$=tree1(FN, $2);} +peq: varname '=' word {$$=treeeq($1, $3);} simple: first +| simple peq {$$=tree2(ARGLIST, $1, $2);} | simple word {$$=tree2(ARGLIST, $1, $2);} | simple redir {$$=tree2(ARGLIST, $1, $2);} first: comword @@ -78,11 +80,12 @@ first: comword word: keyword {lastword=1; $1->type=WORD;} | comword | word '^' word {$$=tree2('^', $1, $3);} -comword: '$' word {$$=tree1('$', $2);} +varname: '$' word {$$=tree1('$', $2);} | '$' word SUB words ')' {$$=tree2(SUB, $2, $4);} +| WORD +comword: varname | '"' word {$$=tree1('"', $2);} | COUNT word {$$=tree1(COUNT, $2);} -| WORD | '`' brace {$$=tree2('`', (struct tree*)0, $2);} | '`' word brace {$$=tree2('`', $2, $3);} | '(' words ')' {$$=tree1(PAREN, $2);} diff --git a/sys/src/cmd/rc/tree.c b/sys/src/cmd/rc/tree.c index 3933f50..c2f60a9 100644 --- a/sys/src/cmd/rc/tree.c +++ b/sys/src/cmd/rc/tree.c @@ -6,6 +6,10 @@ * modified, propagated, or distributed except according to the terms contained * in the LICENSE file. */ +/* Portions of this file are Copyright (C) 9front's team. + * See /doc/license/9front-mit for details about the licensing. + * See http://code.9front.org/hg/plan9front/ for a list of authors. + */ #include "rc.h" #include "exec.h" @@ -25,6 +29,7 @@ newtree(void) t->str = 0; t->child[0] = t->child[1] = t->child[2] = 0; t->next = treenodes; + t->line = runq->lexline; treenodes = t; return t; } @@ -72,6 +77,14 @@ tree3(int type, tree *c0, tree *c1, tree *c2) return t; } +tree* +treeeq(tree *c0, tree *c2) +{ + tree *c1 = token("=", WORD); + return tree2('^', tree2('^', c0, c1), c2); +} + + tree* mung1(tree *t, tree *c0) { diff --git a/sys/src/cmd/rio/build.json b/sys/src/cmd/rio/build.json deleted file mode 100644 index 844b1bf..0000000 --- a/sys/src/cmd/rio/build.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "rio": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Install": "/arch/$ARCH/cmd/", - "Program": "rio", - "SourceFiles": [ - "rio.c", - "data.c", - "fsys.c", - "scrl.c", - "time.c", - "util.c", - "wctl.c", - "wind.c", - "xfid.c" - ] - } -} diff --git a/sys/src/cmd/rio/rio.rc.build b/sys/src/cmd/rio/rio.rc.build new file mode 100644 index 0000000..8e38a37 --- /dev/null +++ b/sys/src/cmd/rio/rio.rc.build @@ -0,0 +1,20 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + rio.c \ + data.c \ + fsys.c \ + scrl.c \ + time.c \ + util.c \ + wctl.c \ + wind.c \ + xfid.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o rio +safemove rio $JEHANNE/arch/$ARCH/cmd +rm -f *.o diff --git a/sys/src/cmd/sam/build.json b/sys/src/cmd/sam/build.json deleted file mode 100644 index 4bc4219..0000000 --- a/sys/src/cmd/sam/build.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "sam": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/", - "Program": "sam", - "SourceFiles": [ - "address.c", - "buff.c", - "cmd.c", - "disk.c", - "error.c", - "file.c", - "io.c", - "list.c", - "mesg.c", - "moveto.c", - "multi.c", - "plan9.c", - "rasp.c", - "regexp.c", - "sam.c", - "shell.c", - "string.c", - "sys.c", - "util.c", - "xec.c" - ] - } -} diff --git a/sys/src/cmd/sam/sam.rc.build b/sys/src/cmd/sam/sam.rc.build new file mode 100644 index 0000000..3a9384d --- /dev/null +++ b/sys/src/cmd/sam/sam.rc.build @@ -0,0 +1,31 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + address.c \ + buff.c \ + cmd.c \ + disk.c \ + error.c \ + file.c \ + io.c \ + list.c \ + mesg.c \ + moveto.c \ + multi.c \ + plan9.c \ + rasp.c \ + regexp.c \ + sam.c \ + shell.c \ + string.c \ + sys.c \ + util.c \ + xec.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o sam +safemove sam $JEHANNE/arch/$ARCH/cmd +rm -f *.o diff --git a/sys/src/cmd/samterm/build.json b/sys/src/cmd/samterm/build.json deleted file mode 100644 index 68ae93d..0000000 --- a/sys/src/cmd/samterm/build.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "samterm": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/aux", - "Program": "samterm", - "SourceFiles": [ - "flayer.c", - "icons.c", - "io.c", - "main.c", - "menu.c", - "mesg.c", - "plan9.c", - "rasp.c", - "scroll.c" - ] - } -} diff --git a/sys/src/cmd/samterm/samterm.rc.build b/sys/src/cmd/samterm/samterm.rc.build new file mode 100644 index 0000000..9156d94 --- /dev/null +++ b/sys/src/cmd/samterm/samterm.rc.build @@ -0,0 +1,20 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + flayer.c \ + icons.c \ + io.c \ + main.c \ + menu.c \ + mesg.c \ + plan9.c \ + rasp.c \ + scroll.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o samterm +safemove samterm $JEHANNE/arch/$ARCH/cmd/aux +rm -f *.o diff --git a/sys/src/cmd/sys/build.json b/sys/src/cmd/sys/build.json deleted file mode 100644 index 5c5d847..0000000 --- a/sys/src/cmd/sys/build.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "SystemTools": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/sys/", - "Oflags": [ - "-static", - "-ljehanne" - ], - "Projects": [ - "call/" - ], - "SourceFilesCmd": [ - "ctrace.c" - ] - } -} diff --git a/sys/src/cmd/sys/call/build.json b/sys/src/cmd/sys/call/build.json deleted file mode 100644 index 8badb99..0000000 --- a/sys/src/cmd/sys/call/build.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "syscall": { - "Cflags": [ - "-Wall" - ], - "Include": [ - "../../cmd.json" - ], - "Post": [ - "rm tab.h" - ], - "Pre": [ - "usyscalls tab $JEHANNE/sys/src/sysconf.json > tab.h" - ], - "Install": "/arch/$ARCH/cmd/sys/", - "Program": "call", - "SourceFiles": [ - "syscall.c" - ] - } -} diff --git a/sys/src/cmd/sys/call/call.rc.build b/sys/src/cmd/sys/call/call.rc.build new file mode 100644 index 0000000..7eba55d --- /dev/null +++ b/sys/src/cmd/sys/call/call.rc.build @@ -0,0 +1,15 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +cat tabh.rc.template | template | rc > tab.h +rm -f *.tag.* +$CC \ + syscall.c \ + -Wall \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o call +safemove call $JEHANNE/arch/$ARCH/cmd/sys +rm tab.h +rm -f *.o diff --git a/sys/src/cmd/sys/call/tabh.rc.template b/sys/src/cmd/sys/call/tabh.rc.template new file mode 100644 index 0000000..0a22e7a --- /dev/null +++ b/sys/src/cmd/sys/call/tabh.rc.template @@ -0,0 +1,25 @@ +/* + * This file is part of Jehanne. + * + * Copyright (C) 2022 Giacomo Tesio + * + * Jehanne is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License. + * + * Jehanne is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jehanne. If not, see . + */ +/* automatically generated by tabh.rc.template */ +#! ifs=' +#! ' +#! CONFIGURATION=`{sed -n '/^$/!{/^#/!p}' $JEHANNE/sys/src/sysconf/syscalls.rc.confs} +#! for (line in $CONFIGURATION){ +#! eval $line +"$NAME", (int(*)()) sys_$NAME, +#! } diff --git a/sys/src/cmd/sys/sys.rc.build b/sys/src/cmd/sys/sys.rc.build new file mode 100644 index 0000000..07a7640 --- /dev/null +++ b/sys/src/cmd/sys/sys.rc.build @@ -0,0 +1,16 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + ctrace.c \ + -o ctrace \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + -static \ + -ljehanne \ + $CMD_OFLAGS +safemove ctrace $JEHANNE/arch/$ARCH/cmd/sys +rm -f *.o + +build call diff --git a/sys/src/cmd/usb/audio/audio.rc.build b/sys/src/cmd/usb/audio/audio.rc.build new file mode 100644 index 0000000..89553ca --- /dev/null +++ b/sys/src/cmd/usb/audio/audio.rc.build @@ -0,0 +1,7 @@ +#!/cmd/rc +. $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-gcc audio.c -o audio -I../lib/ -fstack-check -fstack-protector-all -9 -g -gdwarf-2 -ggdb '-mcmodel=small' -O0 -Wall -Werror -Wno-main -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas -L../lib/ -lusb -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 +safemove audio $JEHANNE/arch/$ARCH/cmd/usb +rm -f *.o diff --git a/sys/src/cmd/usb/audio/build.json b/sys/src/cmd/usb/audio/build.json deleted file mode 100644 index cce398e..0000000 --- a/sys/src/cmd/usb/audio/build.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "audio": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/usb/", - "SourceFilesCmd": [ - "audio.c" - ] - } -} diff --git a/sys/src/cmd/usb/build.json b/sys/src/cmd/usb/build.json deleted file mode 100644 index b999006..0000000 --- a/sys/src/cmd/usb/build.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "Libusb": { - "Cflags": [ - "-fasm" - ], - "Include": [ - "/sys/src/lib/lib.json" - ], - "Library": "libusb.a", - "Install": "./lib/", - "SourceFiles": [ - "lib/dev.c", - "lib/dump.c", - "lib/parse.c" - ] - }, - "USB": { - "Projects": [ - "audio/", - "disk/", - "ether/", - "joy/", - "kb/", - "ptp/", - "serial/", - "usbd/" - ], - "Post": [ - "git clean -xdf ." - ] - } -} diff --git a/sys/src/cmd/usb/cmd.json b/sys/src/cmd/usb/cmd.json deleted file mode 100644 index b01b55e..0000000 --- a/sys/src/cmd/usb/cmd.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "UsbCmd": { - "Include": [ - "/sys/src/cmd/cmd.json" - ], - "Cflags": [ - "-I../lib/" - ], - "Oflags": [ - "-L../lib/", - "-lusb" - ] - } -} diff --git a/sys/src/cmd/usb/disk/build.json b/sys/src/cmd/usb/disk/build.json deleted file mode 100644 index 553f3c0..0000000 --- a/sys/src/cmd/usb/disk/build.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "disk": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/usb/", - "Program": "disk", - "SourceFiles": [ - "disk.c", - "scsierrs.c", - "scsireq.c" - ] - } -} diff --git a/sys/src/cmd/usb/disk/disk.rc.build b/sys/src/cmd/usb/disk/disk.rc.build new file mode 100644 index 0000000..f8b4f7d --- /dev/null +++ b/sys/src/cmd/usb/disk/disk.rc.build @@ -0,0 +1,7 @@ +#!/cmd/rc +. $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-gcc disk.c scsierrs.c scsireq.c -I../lib/ -fstack-check -fstack-protector-all -9 -g -gdwarf-2 -ggdb '-mcmodel=small' -O0 -Wall -Werror -Wno-main -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas -L../lib/ -lusb -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 -o disk +safemove disk $JEHANNE/arch/$ARCH/cmd/usb +rm -f *.o diff --git a/sys/src/cmd/usb/ether/build.json b/sys/src/cmd/usb/ether/build.json deleted file mode 100644 index 3f23055..0000000 --- a/sys/src/cmd/usb/ether/build.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "ether": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/usb/", - "Program": "ether", - "SourceFiles": [ - "asix.c", - "aue.c", - "cdc.c", - "ether.c", - "rndis.c", - "smsc.c", - "url.c" - ] - } -} diff --git a/sys/src/cmd/usb/ether/ether.rc.build b/sys/src/cmd/usb/ether/ether.rc.build new file mode 100644 index 0000000..ac15351 --- /dev/null +++ b/sys/src/cmd/usb/ether/ether.rc.build @@ -0,0 +1,7 @@ +#!/cmd/rc +. $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-gcc asix.c aue.c cdc.c ether.c rndis.c smsc.c url.c -I../lib/ -fstack-check -fstack-protector-all -9 -g -gdwarf-2 -ggdb '-mcmodel=small' -O0 -Wall -Werror -Wno-main -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas -L../lib/ -lusb -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 -o ether +safemove ether $JEHANNE/arch/$ARCH/cmd/usb +rm -f *.o diff --git a/sys/src/cmd/usb/joy/build.json b/sys/src/cmd/usb/joy/build.json deleted file mode 100644 index 4544d7c..0000000 --- a/sys/src/cmd/usb/joy/build.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "joy": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/usb/", - "SourceFilesCmd": [ - "joy.c" - ] - } -} diff --git a/sys/src/cmd/usb/joy/joy.rc.build b/sys/src/cmd/usb/joy/joy.rc.build new file mode 100644 index 0000000..7321aca --- /dev/null +++ b/sys/src/cmd/usb/joy/joy.rc.build @@ -0,0 +1,7 @@ +#!/cmd/rc +. $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-gcc joy.c -o joy -I../lib/ -fstack-check -fstack-protector-all -9 -g -gdwarf-2 -ggdb '-mcmodel=small' -O0 -Wall -Werror -Wno-main -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas -L../lib/ -lusb -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 +safemove joy $JEHANNE/arch/$ARCH/cmd/usb +rm -f *.o diff --git a/sys/src/cmd/usb/kb/build.json b/sys/src/cmd/usb/kb/build.json deleted file mode 100644 index 1201071..0000000 --- a/sys/src/cmd/usb/kb/build.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "kb": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/usb/", - "SourceFilesCmd": [ - "kb.c" - ] - } -} diff --git a/sys/src/cmd/usb/kb/kb.rc.build b/sys/src/cmd/usb/kb/kb.rc.build new file mode 100644 index 0000000..fcac99a --- /dev/null +++ b/sys/src/cmd/usb/kb/kb.rc.build @@ -0,0 +1,7 @@ +#!/cmd/rc +. $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-gcc kb.c -o kb -I../lib/ -fstack-check -fstack-protector-all -9 -g -gdwarf-2 -ggdb '-mcmodel=small' -O0 -Wall -Werror -Wno-main -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas -L../lib/ -lusb -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 +safemove kb $JEHANNE/arch/$ARCH/cmd/usb +rm -f *.o diff --git a/sys/src/cmd/usb/libusb.rc.build b/sys/src/cmd/usb/libusb.rc.build new file mode 100644 index 0000000..232a525 --- /dev/null +++ b/sys/src/cmd/usb/libusb.rc.build @@ -0,0 +1,34 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + lib/dev.c \ + lib/dump.c \ + lib/parse.c \ + -fasm \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libusb.a +$AR -rs lib/libusb.a *.o +$RANLIB lib/libusb.a +rm *.o +rm -f *.o *.tag.* +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-gcc lib/dev.c lib/dump.c lib/parse.c -fasm -fstack-check -fstack-protector-all -c -9 -g -gdwarf-2 -ggdb '-mcmodel=small' -O0 -Wall -Werror -Wno-main -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas +prependLibraryName libusb.a +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-ar -rs lib/libusb.a libusb.a-dev.o libusb.a-dump.o libusb.a-parse.o +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-ranlib lib/libusb.a +rm *.o +rm -f *.o *.tag.* +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-gcc lib/dev.c lib/dump.c lib/parse.c -fasm -fstack-check -fstack-protector-all -c -9 -g -gdwarf-2 -ggdb '-mcmodel=small' -O0 -Wall -Werror -Wno-main -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas +prependLibraryName libusb.a +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-ar -rs lib/libusb.a libusb.a-dev.o libusb.a-dump.o libusb.a-parse.o +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-ranlib lib/libusb.a +rm *.o +rm -f *.o *.tag.* +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-gcc lib/dev.c lib/dump.c lib/parse.c -fasm -fstack-check -fstack-protector-all -c -9 -g -gdwarf-2 -ggdb '-mcmodel=small' -O0 -Wall -Werror -Wno-main -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas +prependLibraryName libusb.a +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-ar -rs lib/libusb.a libusb.a-dev.o libusb.a-dump.o libusb.a-parse.o +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-ranlib lib/libusb.a +rm *.o diff --git a/sys/src/cmd/usb/ptp/build.json b/sys/src/cmd/usb/ptp/build.json deleted file mode 100644 index 12a2132..0000000 --- a/sys/src/cmd/usb/ptp/build.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "ptp": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/usb/", - "SourceFilesCmd": [ - "ptp.c" - ] - } -} diff --git a/sys/src/cmd/usb/ptp/ptp.rc.build b/sys/src/cmd/usb/ptp/ptp.rc.build new file mode 100644 index 0000000..f8f16f9 --- /dev/null +++ b/sys/src/cmd/usb/ptp/ptp.rc.build @@ -0,0 +1,7 @@ +#!/cmd/rc +. $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-gcc ptp.c -o ptp -I../lib/ -fstack-check -fstack-protector-all -9 -g -gdwarf-2 -ggdb '-mcmodel=small' -O0 -Wall -Werror -Wno-main -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas -L../lib/ -lusb -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 +safemove ptp $JEHANNE/arch/$ARCH/cmd/usb +rm -f *.o diff --git a/sys/src/cmd/usb/serial/build.json b/sys/src/cmd/usb/serial/build.json deleted file mode 100644 index e6917f6..0000000 --- a/sys/src/cmd/usb/serial/build.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "serial": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/usb/", - "Program": "serial", - "SourceFiles": [ - "ftdi.c", - "prolific.c", - "serial.c", - "silabs.c", - "ucons.c" - ] - } -} diff --git a/sys/src/cmd/usb/serial/serial.rc.build b/sys/src/cmd/usb/serial/serial.rc.build new file mode 100644 index 0000000..7995a2a --- /dev/null +++ b/sys/src/cmd/usb/serial/serial.rc.build @@ -0,0 +1,7 @@ +#!/cmd/rc +. $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-gcc ftdi.c prolific.c serial.c silabs.c ucons.c -I../lib/ -fstack-check -fstack-protector-all -9 -g -gdwarf-2 -ggdb '-mcmodel=small' -O0 -Wall -Werror -Wno-main -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas -L../lib/ -lusb -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 -o serial +safemove serial $JEHANNE/arch/$ARCH/cmd/usb +rm -f *.o diff --git a/sys/src/cmd/usb/usb.rc.build b/sys/src/cmd/usb/usb.rc.build new file mode 100644 index 0000000..82f0afa --- /dev/null +++ b/sys/src/cmd/usb/usb.rc.build @@ -0,0 +1,14 @@ +#!/cmd/rc + +build libusb.rc.build + +build audio/ +build disk/ +build ether/ +build joy/ +build kb/ +build ptp/ +build serial/ +build usbd/ + +git clean -xdf . diff --git a/sys/src/cmd/usb/usbd/build.json b/sys/src/cmd/usb/usbd/build.json deleted file mode 100644 index 4e1b31a..0000000 --- a/sys/src/cmd/usb/usbd/build.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "usbd": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/usb/", - "Program": "usbd", - "SourceFiles": [ - "hname.c", - "hub.c", - "usbd.c" - ] - } -} diff --git a/sys/src/cmd/usb/usbd/usbd.rc.build b/sys/src/cmd/usb/usbd/usbd.rc.build new file mode 100644 index 0000000..5874066 --- /dev/null +++ b/sys/src/cmd/usb/usbd/usbd.rc.build @@ -0,0 +1,7 @@ +#!/cmd/rc +. $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$JEHANNE_TOOLCHAIN/cross/posix/bin/x86_64-jehanne-gcc hname.c hub.c usbd.c -I../lib/ -fstack-check -fstack-protector-all -9 -g -gdwarf-2 -ggdb '-mcmodel=small' -O0 -Wall -Werror -Wno-main -Wno-missing-braces -Wno-parentheses -Wno-unknown-pragmas -L../lib/ -lusb -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 -o usbd +safemove usbd $JEHANNE/arch/$ARCH/cmd/usb +rm -f *.o diff --git a/sys/src/cmd/vt.rc.build b/sys/src/cmd/vt.rc.build new file mode 100644 index 0000000..46863fd --- /dev/null +++ b/sys/src/cmd/vt.rc.build @@ -0,0 +1,5 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +rm -f *.o diff --git a/sys/src/cmd/vt/build.json b/sys/src/cmd/vt/build.json deleted file mode 100644 index c17e8bc..0000000 --- a/sys/src/cmd/vt/build.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "vt": { - "Include": [ - "../cmd.json" - ], - "Install": "/arch/$ARCH/cmd/", - "Program": "vt", - "SourceFiles": [ - "main.c", - "vt.c", - "fs.c" - ] - } -} diff --git a/sys/src/cmd/vt/vt.rc.build b/sys/src/cmd/vt/vt.rc.build new file mode 100644 index 0000000..2e5583f --- /dev/null +++ b/sys/src/cmd/vt/vt.rc.build @@ -0,0 +1,14 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + main.c \ + vt.c \ + fs.c \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + $CMD_OFLAGS \ + -o vt +safemove vt $JEHANNE/arch/$ARCH/cmd +rm -f *.o diff --git a/sys/src/kern/amd64/amd64.rc.build b/sys/src/kern/amd64/amd64.rc.build new file mode 100644 index 0000000..473546c --- /dev/null +++ b/sys/src/kern/amd64/amd64.rc.build @@ -0,0 +1,433 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +git clean -xdf ./ + + +CONF=Amd64CPU +CONFFILE=`{pwd} +build ../boot/ +build inith.rc.build +DIR_TO_CLEAN=`{pwd} + + +cat ../build/ksyscalls.rc.template | template | rc | sed 's/ ,/,/g; s/ )/)/g' > systab.c +cat ../build/errstrh.rc.template | template | rc > errstr.h +cat ./createSIPIHeader.rc |rc +cat ../build/errorh.rc.template | template | rc > ../port/error.h + +if ( test -d ramdisk ) rm -fr ramdisk +mkdir ramdisk + +CMD_DIR=$JEHANNE/arch/$ARCH/cmd +RAMDISK=( \ + $CMD_DIR/disk/rofs \ +) + +for (file in $RAMDISK) { + NAME=`{basename $file} + $STRIP -o ./ramdisk/$NAME $file +} + +DEVICES=( \ + arch \ + bridge \ + cap \ + cons \ + dup \ + draw \ + env \ + ether \ + ip \ + kprof \ + kbd \ + mouse \ + ninep \ + pci \ + pipe \ + proc \ + root \ + rtc \ + sd \ + self \ + shr \ + srv \ + ssl \ + tls \ + uart \ + usb \ + vga \ +) +LINKS=( \ + ether8139 \ + ether8169 \ + ether82557 \ + ether82563 \ + etherigbe \ + ethermedium \ + loopbackmedium \ + netdevmedium \ + usbuhci \ + usbohci \ + usbehci \ +) +PROTOCOLS=( \ + tcp \ + udp \ + ipifc \ + icmp \ + icmp6 \ + gre \ +) +SDINTERFACES=( \ + sdata \ + sdiahci \ +) +UARTS=( \ + i8250 \ + pci \ +) + +VGA=(vgavesa) + +cat ../build/kernelconf.rc.template | template | rc > autogenerated.c + +$CC \ + autogenerated.c \ + sdata.c \ + cga.c \ + usbehcipc.c \ + usbohci.c \ + usbuhci.c \ + bios32.c \ + devether.c \ + devrtc.c \ + devkbd.c \ + ether8139.c \ + ether8169.c \ + ether82557.c \ + ether82563.c \ + etherigbe.c \ + ethermii.c \ + etherm10g.c \ + pci.c \ + sdiahci.c \ + sdscsi.c \ + uarti8250.c \ + uartpci.c \ + entry.S \ + ec.c \ + l64v.S \ + l64fpu.S \ + cpuidamd64.S \ + l64idt.S \ + l64vsyscall.S \ + acpi.c \ + arch.c \ + archmp.c \ + devarch.c \ + fpu.c \ + hpet.c \ + i8253.c \ + i8259.c \ + lapic.c \ + main.c \ + memory.c \ + mmu.c \ + mp.c \ + msi.c \ + mtrr.c \ + multiboot.c \ + squidboy.c \ + syscall.c \ + systab.c \ + trap.c \ + ../port/devdraw.c \ + ../port/devmouse.c \ + ../port/swcursor.c \ + vgavesa.c \ + screen.c \ + devvga.c \ + mouse.c \ + vga.c \ + vgax.c \ + ../ip/arp.c \ + ../ip/chandial.c \ + ../ip/devip.c \ + ../ip/ethermedium.c \ + ../ip/gre.c \ + ../ip/icmp6.c \ + ../ip/icmp.c \ + ../ip/ipaux.c \ + ../ip/ip.c \ + ../ip/ipifc.c \ + ../ip/iproute.c \ + ../ip/ipv6.c \ + ../ip/loopbackmedium.c \ + ../ip/netdevmedium.c \ + ../ip/netlog.c \ + ../ip/nullmedium.c \ + ../ip/pktmedium.c \ + ../ip/ptclbsum.c \ + ../ip/tcp.c \ + ../ip/udp.c \ + ../port/umem/pages.c \ + ../port/umem/raw.c \ + ../port/umem/segments.c \ + ../port/umem/images.c \ + ../port/alarm.c \ + ../port/alloc.c \ + ../port/allocb.c \ + ../port/awake.c \ + ../port/chan.c \ + ../port/debug.c \ + ../port/dev.c \ + ../port/dev9p.c \ + ../port/devbridge.c \ + ../port/devcap.c \ + ../port/devcons.c \ + ../port/devdup.c \ + ../port/devenv.c \ + ../port/devfs.c \ + ../port/devkprof.c \ + ../port/devpci.c \ + ../port/devpipe.c \ + ../port/devproc.c \ + ../port/devroot.c \ + ../port/devsd.c \ + ../port/devself.c \ + ../port/devshr.c \ + ../port/devsrv.c \ + ../port/devssl.c \ + ../port/devtab.c \ + ../port/devtls.c \ + ../port/devtrace.c \ + ../port/devuart.c \ + ../port/devusb.c \ + ../port/elf64.c \ + ../port/fault.c \ + ../port/getput.c \ + ../port/log.c \ + ../port/taslock.c \ + ../port/mul64fract.c \ + ../port/net.c \ + ../port/netif.c \ + ../port/parse.c \ + ../port/pgrp.c \ + ../port/portclock.c \ + ../port/print.c \ + ../port/proc.c \ + ../port/ps.c \ + ../port/qio.c \ + ../port/qlock.c \ + ../port/random.c \ + ../port/rebootcmd.c \ + ../port/ref.c \ + ../port/sysauth.c \ + ../port/syscallfmt.c \ + ../port/sysfile.c \ + ../port/sysproc.c \ + ../port/tod.c \ + ../port/uidgid.c \ + ../port/usbehci.c \ + ../port/xalloc.c \ + -DKERNEL \ + '-DKERNDATE=1433623937' \ + -9 \ + -c \ + -I. \ + -I$JEHANNE/sys/src/lib/jehanne \ + '-mcmodel=kernel' \ + -O0 \ + -static \ + -fplan9-extensions \ + -mno-red-zone \ + -fstack-protector-all \ + -ffreestanding \ + -fno-builtin \ + -g \ + -fvar-tracking \ + -fvar-tracking-assignments \ + -ffixed-r14 \ + -ffixed-r15 \ + -Wall \ + -W \ + -Wno-sign-compare \ + -Wno-missing-field-initializers \ + -Wno-unused-parameter \ + -Wno-missing-braces \ + -Wno-parentheses \ + -Wno-unknown-pragmas \ + -fasm +$LD -o jehanne \ + autogenerated.o \ + sdata.o \ + cga.o \ + usbehcipc.o \ + usbohci.o \ + usbuhci.o \ + bios32.o \ + devether.o \ + devrtc.o \ + devkbd.o \ + ether8139.o \ + ether8169.o \ + ether82557.o \ + ether82563.o \ + etherigbe.o \ + ethermii.o \ + etherm10g.o \ + pci.o \ + sdiahci.o \ + sdscsi.o \ + uarti8250.o \ + uartpci.o \ + entry.o \ + ec.o \ + l64v.o \ + l64fpu.o \ + cpuidamd64.o \ + l64idt.o \ + l64vsyscall.o \ + acpi.o \ + arch.o \ + archmp.o \ + devarch.o \ + fpu.o \ + hpet.o \ + i8253.o \ + i8259.o \ + lapic.o \ + main.o \ + memory.o \ + mmu.o \ + mp.o \ + msi.o \ + mtrr.o \ + multiboot.o \ + squidboy.o \ + syscall.o \ + systab.o \ + trap.o \ + devdraw.o \ + devmouse.o \ + swcursor.o \ + vgavesa.o \ + screen.o \ + devvga.o \ + mouse.o \ + vga.o \ + vgax.o \ + arp.o \ + chandial.o \ + devip.o \ + ethermedium.o \ + gre.o \ + icmp6.o \ + icmp.o \ + ipaux.o \ + ip.o \ + ipifc.o \ + iproute.o \ + ipv6.o \ + loopbackmedium.o \ + netdevmedium.o \ + netlog.o \ + nullmedium.o \ + pktmedium.o \ + ptclbsum.o \ + tcp.o \ + udp.o \ + pages.o \ + raw.o \ + segments.o \ + images.o \ + alarm.o \ + alloc.o \ + allocb.o \ + awake.o \ + chan.o \ + debug.o \ + dev.o \ + dev9p.o \ + devbridge.o \ + devcap.o \ + devcons.o \ + devdup.o \ + devenv.o \ + devfs.o \ + devkprof.o \ + devpci.o \ + devpipe.o \ + devproc.o \ + devroot.o \ + devsd.o \ + devself.o \ + devshr.o \ + devsrv.o \ + devssl.o \ + devtab.o \ + devtls.o \ + devtrace.o \ + devuart.o \ + devusb.o \ + elf64.o \ + fault.o \ + getput.o \ + log.o \ + taslock.o \ + mul64fract.o \ + net.o \ + netif.o \ + parse.o \ + pgrp.o \ + portclock.o \ + print.o \ + proc.o \ + ps.o \ + qio.o \ + qlock.o \ + random.o \ + rebootcmd.o \ + ref.o \ + sysauth.o \ + syscallfmt.o \ + sysfile.o \ + sysproc.o \ + tod.o \ + uidgid.o \ + usbehci.o \ + xalloc.o \ + -z 'max-page-size=0x1000' \ + -nostdlib -T kernel.ld -g \ + $JEHANNE/arch/$ARCH/lib/klibmemlayer.a \ + $JEHANNE/arch/$ARCH/lib/klibmemdraw.a \ + $JEHANNE/arch/$ARCH/lib/klibdraw.a \ + $JEHANNE/arch/$ARCH/lib/klibip.a \ + $JEHANNE/arch/$ARCH/lib/klibc.a \ + $JEHANNE/arch/$ARCH/lib/klib9p2000.a \ + $JEHANNE/arch/$ARCH/lib/klibsec.a \ + $JEHANNE/arch/$ARCH/lib/klibmp.a \ + $JEHANNE/arch/$ARCH/lib/klibaml.a +safemove jehanne $JEHANNE/arch/$ARCH/kern + +cd $JEHANNE/arch/$ARCH/kern + +# dump assembly +$OBJDUMP -S jehanne > jehanne.asm + +# prepare multiboot kernel (32bit only) +$OBJCOPY -I elf64-x86-64 -O elf32-i386 jehanne jehanne.32bit +#cd $JEHANNE/arch/$ARCH/kern; cp jehanne.32bit $JEHANNE/cfg/pxe/tftpboot + +# create initial ram disk +KERNDIR=$JEHANNE/hacking/bin/ +KERNEL=workhorse.32bit + +find $JEHANNE/arch/$ARCH/cmd -type f | xargs -n 1 strip +strip $JEHANNE/arch/$ARCH/kern/jehanne.32bit +echo /sys/src/kern/boot/createInitRD|runqemu + + +cd $DIR_TO_CLEAN +#git clean -xdf ../ diff --git a/sys/src/kern/amd64/boot-methods.rc.confs b/sys/src/kern/amd64/boot-methods.rc.confs new file mode 100644 index 0000000..1d5f2be --- /dev/null +++ b/sys/src/kern/amd64/boot-methods.rc.confs @@ -0,0 +1,3 @@ +METHOD=tcp ARGS='' +METHOD=rc ARGS='' +METHOD=local ARGS='' diff --git a/sys/src/kern/amd64/build.json b/sys/src/kern/amd64/build.json deleted file mode 100644 index 192406e..0000000 --- a/sys/src/kern/amd64/build.json +++ /dev/null @@ -1,121 +0,0 @@ -{ - "A.Kernel": { - "Env": [ - "CONF=Amd64CPU" - ], - "Include": [ - "core.json", - "devdraw.json", - "../ip/include.json", - "../port/include.json" - ], - "Kernel": { - "Config": { - "Code": [ - "int cpuserver = 1;", - "uint32_t kerndate = 1;", - "int printallsyscalls;" - ], - "Dev": [ - "arch", - "bridge", - "cap", - "cons", - "draw", - "dup", - "env", - "ether", - "ip", - "kprof", - "kbd", - "ninep", - "pci", - "pipe", - "proc", - "root", - "rtc", - "sd", - "self", - "shr", - "srv", - "ssl", - "tls", - "uart", - "usb" - ], - "Ip": [ - "tcp", - "udp", - "ipifc", - "icmp", - "icmp6", - "gre" - ], - "Link": [ - "ether8139", - "ether8169", - "ether82557", - "ether82563", - "etherigbe", - "ethermedium", - "loopbackmedium", - "netdevmedium", - "usbuhci", - "usbohci", - "usbehci" - ], - "Sd": [ - "sdata", - "sdiahci" - ], - "Uart": [ - "i8250", - "pci" - ], - "VGA": [ - ] - }, - "Ramfiles": { - "rofs": "/arch/$ARCH/cmd/disk/rofs" - }, - "Systab": "/sys/src/lib/jehanne/9syscall/sys.h" - }, - "Program": "jehanne", - "Install": "/arch/$ARCH/kern/", - "SourceFiles": [ - "autogenerated.c", - "sdata.c", - "cga.c", - "usbehcipc.c", - "usbohci.c", - "usbuhci.c" - ] - }, - "B.AssemblyDump": { - "Pre": [ - "cd $JEHANNE/arch/$ARCH/kern; OBJDUMP=objdump; $TOOLPREFIX$OBJDUMP -S jehanne > jehanne.asm" - ] - }, - "C.Multiboot": { - "Pre": [ - "cd $JEHANNE/arch/$ARCH/kern; OBJCOPY=objcopy; $TOOLPREFIX$OBJCOPY -I elf64-x86-64 -O elf32-i386 jehanne jehanne.32bit", - "#cd $JEHANNE/arch/$ARCH/kern; cp jehanne.32bit $JEHANNE/cfg/pxe/tftpboot" - ] - }, - "D.InitRD": { - "Env": [ - "KERNDIR=$JEHANNE/hacking/bin/", - "KERNEL=workhorse.32bit" - ], - "Pre": [ - "#find $JEHANNE/arch/$ARCH/cmd -type f | xargs -n 1 strip", - "strip $JEHANNE/arch/$ARCH/kern/jehanne.32bit", - "echo /sys/src/kern/boot/createInitRD|runqemu" - ] - }, - "E.Cleanup": { - "Post": [ - "git clean -xdf ../" - ] - } -} diff --git a/sys/src/kern/amd64/clean.json b/sys/src/kern/amd64/clean.json deleted file mode 100644 index 9a41abe..0000000 --- a/sys/src/kern/amd64/clean.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "clean": { - "Pre": [ - "git clean -xdf ./" - ] - } -} diff --git a/sys/src/kern/amd64/core.json b/sys/src/kern/amd64/core.json deleted file mode 100644 index e4d1a8a..0000000 --- a/sys/src/kern/amd64/core.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "core": { - "Kernel" : { - "CodeFile": "autogenerated.c" - }, - "Cflags": [ - "-DKERNEL", - "-DKERNDATE=1433623937", - "-9", - "-c", - "-I.", - "-I$JEHANNE/sys/src/lib/jehanne", - "-mcmodel=kernel", - "-O0", - "-static", - "-fplan9-extensions", - "-mno-red-zone", - "-fstack-protector-all", - "-ffreestanding", - "-fno-builtin", - "-g", - "-fvar-tracking", - "-fvar-tracking-assignments", - "-ffixed-r14", - "-ffixed-r15", - "-Wall", - "-W", - "-Wno-sign-compare", - "-Wno-missing-field-initializers", - "-Wno-unused-parameter", - "-Wno-missing-braces", - "-Wno-parentheses", - "-Wno-unknown-pragmas" - ], - "Libs": [ - "/arch/$ARCH/lib/klibmemlayer.a", - "/arch/$ARCH/lib/klibmemdraw.a", - "/arch/$ARCH/lib/klibdraw.a", - "/arch/$ARCH/lib/klibip.a", - "/arch/$ARCH/lib/klibc.a", - "/arch/$ARCH/lib/klib9p2000.a", - "/arch/$ARCH/lib/klibsec.a", - "/arch/$ARCH/lib/klibmp.a", - "/arch/$ARCH/lib/klibaml.a" - ], - "Oflags": [ - "-z", - "max-page-size=0x1000", - "-nostdlib", - "-g", - "-T", - "kernel.ld" - ], - "Pre": [ - "ksyscalls $JEHANNE/sys/src/sysconf.json > systab.c", - "mksys -o errstr.h '-mode=errstr.h' $JEHANNE/sys/src/sysconf.json", - "./createSIPIHeader.sh" - ], - "Projects": [ - "clean.json", - "../boot/build.json", - "inith.json" - ], - "SourceFiles": [ - "bios32.c", - "devether.c", - "devrtc.c", - "devkbd.c", - "ether8139.c", - "ether8169.c", - "ether82557.c", - "ether82563.c", - "etherigbe.c", - "ethermii.c", - "etherm10g.c", - "pci.c", - "sdiahci.c", - "sdscsi.c", - "uarti8250.c", - "uartpci.c", - "entry.S", - "ec.c", - "l64v.S", - "l64fpu.S", - "cpuidamd64.S", - "l64idt.S", - "l64vsyscall.S", - "acpi.c", - "arch.c", - "archmp.c", - "devarch.c", - "fpu.c", - "hpet.c", - "i8253.c", - "i8259.c", - "lapic.c", - "main.c", - "memory.c", - "mmu.c", - "mp.c", - "msi.c", - "mtrr.c", - "multiboot.c", - "squidboy.c", - "syscall.c", - "systab.c", - "trap.c" - ] - } -} diff --git a/sys/src/kern/amd64/createSIPIHeader.rc b/sys/src/kern/amd64/createSIPIHeader.rc new file mode 100755 index 0000000..f79ff47 --- /dev/null +++ b/sys/src/kern/amd64/createSIPIHeader.rc @@ -0,0 +1,13 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +cd $JEHANNE/sys/src/kern/amd64 + +$CC -c -O0 -static -fplan9-extensions -mno-red-zone -ffreestanding -fno-builtin '-mcmodel=kernel' l64sipi.S +$LD -Ttext 0x00003000 -e 0x00003000 l64sipi.o -o l64sipi +$OBJCOPY -O binary -j .text l64sipi l64sipi.out + +echo 'uint8_t sipihandler[]={' > sipi.h +cat l64sipi.out | hexdump -v -e '7/1 "0x%02x, " 1/1 " 0x%02x,\n"' | sed '$s/0x ,/0x00,/g'>> sipi.h +echo '};' >> sipi.h +#rm l64sipi.out diff --git a/sys/src/kern/amd64/devdraw.json b/sys/src/kern/amd64/devdraw.json deleted file mode 100644 index 88d68ce..0000000 --- a/sys/src/kern/amd64/devdraw.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "DrawingModules": { - "Kernel": { - "Config": { - "Dev": [ - "mouse", - "vga" - ], - "VGA": [ - "vgavesa" - ] - } - }, - "SourceFiles": [ - "../port/devdraw.c", - "../port/devmouse.c", - "../port/swcursor.c", - "vgavesa.c", - "screen.c", - "devvga.c", - "mouse.c", - "vga.c", - "vgax.c" - ] - } -} diff --git a/sys/src/kern/amd64/inith.json b/sys/src/kern/amd64/inith.json deleted file mode 100644 index 0792acd..0000000 --- a/sys/src/kern/amd64/inith.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "inith": { - "Cflags": [ - "-9", - "-g", - "-Wall", - "-Wno-missing-braces", - "-Wno-parentheses", - "-Wno-unknown-pragmas", - "-O0", - "-static", - "-fplan9-extensions", - "-ffreestanding", - "-fno-builtin", - "-Tinit.ld", - "-mcmodel=small" - ], - "Libs": [ - "/arch/$ARCH/lib/libjehanne.a" - ], - "Post": [ - "export TOOL=strip && $TOOLPREFIX$TOOL init", - "elf2c init > init.h" - ], - "Program": "init", - "SourceFiles": [ - "init9.c", - "../port/initcode.c" - ] - } -} diff --git a/sys/src/kern/amd64/inith.rc.build b/sys/src/kern/amd64/inith.rc.build new file mode 100644 index 0000000..68263e2 --- /dev/null +++ b/sys/src/kern/amd64/inith.rc.build @@ -0,0 +1,26 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +# user space bootstrapper (first userspace program run) +$CC \ + init9.c \ + ../port/initcode.c \ + -9 \ + -g \ + -Wall \ + -Wno-missing-braces \ + -Wno-parentheses \ + -Wno-unknown-pragmas \ + -O0 \ + -static \ + -fplan9-extensions \ + -ffreestanding \ + -fno-builtin \ + -Tinit.ld \ + '-mcmodel=small' \ + -ljehanne \ + -o init +$STRIP init + +TARGET=init +cat ../build/inith.rc.template |template|rc > init.h diff --git a/sys/src/kern/amd64/laptop.json b/sys/src/kern/amd64/laptop.json deleted file mode 100644 index c16218e..0000000 --- a/sys/src/kern/amd64/laptop.json +++ /dev/null @@ -1,112 +0,0 @@ -{ - "A.Kernel": { - "Env": [ - "CONF=Amd64CPU" - ], - "Include": [ - "core.json", - "devdraw.json", - "../ip/include.json", - "../port/include.json" - ], - "Kernel": { - "Config": { - "Code": [ - "int cpuserver = 1;", - "uint32_t kerndate = 1;", - "int printallsyscalls;" - ], - "Dev": [ - "arch", - "bridge", - "cap", - "cons", - "draw", - "dup", - "env", - "ether", - "ip", - "kprof", - "ninep", - "pci", - "pipe", - "proc", - "root", - "rtc", - "sd", - "shr", - "srv", - "ssl", - "tls", - "usb" - ], - "Ip": [ - "tcp", - "udp", - "ipifc", - "icmp", - "icmp6", - "gre" - ], - "Link": [ - "ether8139", - "ether8169", - "ether82557", - "ether82563", - "etherigbe", - "ethermedium", - "loopbackmedium", - "netdevmedium", - "usbuhci", - "usbohci", - "usbehci" - ], - "Sd": [ - "sdiahci" - ], - "Uart": [ - "pci" - ], - "VGA": [ - ] - }, - "Ramfiles": { - "rofs": "/arch/$ARCH/cmd/disk/rofs" - }, - "Systab": "/sys/src/lib/jehanne/9syscall/sys.h" - }, - "Post": [ - "#strip $JEHANNE/arch/$ARCH/kern/jehanne" - ], - "Program": "jehanne", - "Install": "/arch/$ARCH/kern/", - "SourceFiles": [ - "autogenerated.c", - "cga.c", - "usbehcipc.c", - "usbohci.c", - "usbuhci.c" - ] - }, - "C.Multiboot": { - "Pre": [ - "cd $JEHANNE/arch/$ARCH/kern; OBJCOPY=objcopy; $TOOLPREFIX$OBJCOPY -I elf64-x86-64 -O elf32-i386 jehanne jehanne.32bit", - "#cd $JEHANNE/arch/$ARCH/kern; cp jehanne.32bit $JEHANNE/cfg/pxe/tftpboot" - ] - }, - "D.InitRD": { - "Env": [ - "KERNDIR=$JEHANNE/hacking/bin/", - "KERNEL=workhorse.32bit" - ], - "Pre": [ - "find $JEHANNE/arch/$ARCH/cmd -type f | xargs -n 1 strip", - "echo /sys/src/kern/boot/createInitRD|runqemu" - ] - }, - "E.Cleanup": { - "Post": [ - "git clean -xdf ../" - ] - } -} diff --git a/sys/src/kern/amd64/ramdisk/rofs b/sys/src/kern/amd64/ramdisk/rofs new file mode 100755 index 0000000..46033a4 Binary files /dev/null and b/sys/src/kern/amd64/ramdisk/rofs differ diff --git a/sys/src/kern/amd64/registry-amd64.rc.conf b/sys/src/kern/amd64/registry-amd64.rc.conf new file mode 100644 index 0000000..c9dda60 --- /dev/null +++ b/sys/src/kern/amd64/registry-amd64.rc.conf @@ -0,0 +1,21 @@ +# syscalls- arguments registers +# note how in x86_64 the sequence differ from normal function calls in +# System V ABI: rcx is replaced by r10 since the syscall instruction +# that would clobber rcx (and r11) +UREG=(di si dx r10 r8 r9) + +# syscalls' return values +int=i +int32_t=i +long=vl +int64_t=vl +uintptr_t=p +void=p +void*=v +char*=v +char**=v +uint8_t*=v +int32_t*=v +uint64_t*=v +int64_t*=v + diff --git a/sys/src/kern/amd64/workhorse.json b/sys/src/kern/amd64/workhorse.json deleted file mode 100644 index 42693c3..0000000 --- a/sys/src/kern/amd64/workhorse.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "A.Kernel": { - "Env": [ - "CONF=Workhorse" - ], - "Include": [ - "core.json", - "../ip/include.json", - "../port/include.json" - ], - "Kernel": { - "Config": { - "Code": [ - "int cpuserver = 1;", - "uint32_t kerndate = 1;", - "int printallsyscalls;" - ], - "Dev": [ - "arch", - "bridge", - "cap", - "cons", - "dup", - "env", - "ether", - "ip", - "ninep", - "pci", - "pipe", - "proc", - "root", - "sd", - "self", - "shr", - "srv", - "uart" - ], - "Ip": [ - "tcp", - "udp", - "ipifc", - "icmp", - "icmp6", - "gre" - ], - "Link": [ - "ether8139", - "ether8169", - "ether82557", - "ether82563", - "etherigbe", - "ethermedium", - "loopbackmedium", - "netdevmedium", - "usbuhci", - "usbohci", - "usbehci" - ], - "Sd": [ - "sdata", - "sdiahci" - ], - "Uart": [ - "i8250", - "pci" - ], - "VGA": [ - ] - }, - "Ramfiles": { - "mkdir": "/arch/$ARCH/cmd/mkdir", - "test": "/arch/$ARCH/cmd/test", - "sleep": "/arch/$ARCH/cmd/sleep", - "bind": "/arch/$ARCH/cmd/bind", - "boot": "/sys/src/kern/boot/boot$CONF.elf.out", - "mkrofs": "/arch/$ARCH/cmd/disk/mkrofs", - "rofs": "/arch/$ARCH/cmd/disk/rofs", - "cat": "/arch/$ARCH/cmd/cat", - "date": "/arch/$ARCH/cmd/date", - "echo": "/arch/$ARCH/cmd/echo", - "factotum": "/arch/$ARCH/cmd/auth/factotum", - "fdisk": "/arch/$ARCH/cmd/disk/fdisk", - "ipconfig": "/arch/$ARCH/cmd/ip/ipconfig", - "ls": "/arch/$ARCH/cmd/ls", - "mount": "/arch/$ARCH/cmd/mount", - "nvram": "/hacking/nvram", - "prep": "/arch/$ARCH/cmd/disk/prep", - "rc": "/arch/$ARCH/cmd/rc", - "ps": "/arch/$ARCH/cmd/ps", - "ed": "/arch/$ARCH/cmd/ed", - "rcmain": "/arch/rc/lib/rcmain", - "comconsole": "/arch/$ARCH/cmd/hmi/comconsole", - "srv": "/arch/$ARCH/cmd/srv" - }, - "Systab": "/sys/src/lib/jehanne/9syscall/sys.h" - }, - "Post": [ - "OBJCOPY=objcopy; $TOOLPREFIX$OBJCOPY -I elf64-x86-64 -O elf32-i386 workhorse $JEHANNE/hacking/bin/workhorse.32bit", - "mv workhorse $JEHANNE/hacking/bin/ #decomment to debug workhorse with gdb" - ], - "Program": "workhorse", - "SourceFiles": [ - "autogenerated.c", - "sdata.c", - "cga.c", - "usbehcipc.c", - "usbohci.c", - "usbuhci.c" - ] - } -} diff --git a/sys/src/kern/amd64/workhorse.rc.build b/sys/src/kern/amd64/workhorse.rc.build new file mode 100644 index 0000000..bef5da3 --- /dev/null +++ b/sys/src/kern/amd64/workhorse.rc.build @@ -0,0 +1,410 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +git clean -xdf ./ + + +CONF=Workhorse +CONFFILE=`{pwd} +build ../boot/ +build inith.rc.build + + + +cat ../build/ksyscalls.rc.template | template | rc | sed 's/ ,/,/g; s/ )/)/g' > systab.c +cat ../build/errstrh.rc.template | template | rc > errstr.h +cat ./createSIPIHeader.rc |rc +cat ../build/errorh.rc.template | template | rc > ../port/error.h + +if ( test -d ramdisk ) rm -fr ramdisk +mkdir ramdisk + +CMD_DIR=$JEHANNE/arch/$ARCH/cmd +RAMDISK=( \ + $CMD_DIR/mkdir \ + $CMD_DIR/test \ + $CMD_DIR/sleep \ + $CMD_DIR/bind \ + $CMD_DIR/disk/mkrofs \ + $CMD_DIR/disk/rofs \ + $CMD_DIR/cat \ + $CMD_DIR/date \ + $CMD_DIR/echo \ + $CMD_DIR/auth/factotum \ + $CMD_DIR/disk/fdisk \ + $CMD_DIR/ip/ipconfig \ + $CMD_DIR/ls \ + $CMD_DIR/mount \ + $CMD_DIR/disk/prep \ + $CMD_DIR/rc \ + $CMD_DIR/ps \ + $CMD_DIR/ed \ + $CMD_DIR/hmi/comconsole \ + $CMD_DIR/srv \ +) + +for (file in $RAMDISK) { + NAME=`{basename $file} + $STRIP -o ./ramdisk/$NAME $file +} + +$STRIP -o ./ramdisk/boot $JEHANNE/sys/src/kern/boot/boot$CONF.elf.out +cp $JEHANNE/arch/rc/lib/rcmain ./ramdisk/ +cp $JEHANNE/hacking/nvram ./ramdisk/ + +DEVICES=( \ + arch \ + bridge \ + cap \ + cons \ + dup \ + env \ + ether \ + ip \ + ninep \ + pci \ + pipe \ + proc \ + root \ + sd \ + self \ + shr \ + srv \ + uart \ +) +LINKS=( \ + ether8139 \ + ether8169 \ + ether82557 \ + ether82563 \ + etherigbe \ + ethermedium \ + loopbackmedium \ + netdevmedium \ + usbuhci \ + usbohci \ + usbehci \ +) +PROTOCOLS=( \ + tcp \ + udp \ + ipifc \ + icmp \ + icmp6 \ + gre \ +) +SDINTERFACES=( \ + sdata \ + sdiahci \ +) +UARTS=( \ + i8250 \ + pci \ +) + + +cat ../build/kernelconf.rc.template | template | rc > autogenerated.c + +$CC \ + autogenerated.c \ + sdata.c \ + cga.c \ + usbehcipc.c \ + usbohci.c \ + usbuhci.c \ + bios32.c \ + devether.c \ + devrtc.c \ + devkbd.c \ + ether8139.c \ + ether8169.c \ + ether82557.c \ + ether82563.c \ + etherigbe.c \ + ethermii.c \ + etherm10g.c \ + pci.c \ + sdiahci.c \ + sdscsi.c \ + uarti8250.c \ + uartpci.c \ + entry.S \ + ec.c \ + l64v.S \ + l64fpu.S \ + cpuidamd64.S \ + l64idt.S \ + l64vsyscall.S \ + acpi.c \ + arch.c \ + archmp.c \ + devarch.c \ + fpu.c \ + hpet.c \ + i8253.c \ + i8259.c \ + lapic.c \ + main.c \ + memory.c \ + mmu.c \ + mp.c \ + msi.c \ + mtrr.c \ + multiboot.c \ + squidboy.c \ + syscall.c \ + systab.c \ + trap.c \ + ../ip/arp.c \ + ../ip/chandial.c \ + ../ip/devip.c \ + ../ip/ethermedium.c \ + ../ip/gre.c \ + ../ip/icmp6.c \ + ../ip/icmp.c \ + ../ip/ipaux.c \ + ../ip/ip.c \ + ../ip/ipifc.c \ + ../ip/iproute.c \ + ../ip/ipv6.c \ + ../ip/loopbackmedium.c \ + ../ip/netdevmedium.c \ + ../ip/netlog.c \ + ../ip/nullmedium.c \ + ../ip/pktmedium.c \ + ../ip/ptclbsum.c \ + ../ip/tcp.c \ + ../ip/udp.c \ + ../port/umem/pages.c \ + ../port/umem/raw.c \ + ../port/umem/segments.c \ + ../port/umem/images.c \ + ../port/alarm.c \ + ../port/alloc.c \ + ../port/allocb.c \ + ../port/awake.c \ + ../port/chan.c \ + ../port/debug.c \ + ../port/dev.c \ + ../port/dev9p.c \ + ../port/devbridge.c \ + ../port/devcap.c \ + ../port/devcons.c \ + ../port/devdup.c \ + ../port/devenv.c \ + ../port/devfs.c \ + ../port/devkprof.c \ + ../port/devpci.c \ + ../port/devpipe.c \ + ../port/devproc.c \ + ../port/devroot.c \ + ../port/devsd.c \ + ../port/devself.c \ + ../port/devshr.c \ + ../port/devsrv.c \ + ../port/devssl.c \ + ../port/devtab.c \ + ../port/devtls.c \ + ../port/devtrace.c \ + ../port/devuart.c \ + ../port/devusb.c \ + ../port/elf64.c \ + ../port/fault.c \ + ../port/getput.c \ + ../port/log.c \ + ../port/taslock.c \ + ../port/mul64fract.c \ + ../port/net.c \ + ../port/netif.c \ + ../port/parse.c \ + ../port/pgrp.c \ + ../port/portclock.c \ + ../port/print.c \ + ../port/proc.c \ + ../port/ps.c \ + ../port/qio.c \ + ../port/qlock.c \ + ../port/random.c \ + ../port/rebootcmd.c \ + ../port/ref.c \ + ../port/sysauth.c \ + ../port/syscallfmt.c \ + ../port/sysfile.c \ + ../port/sysproc.c \ + ../port/tod.c \ + ../port/uidgid.c \ + ../port/usbehci.c \ + ../port/xalloc.c \ + -DKERNEL \ + '-DKERNDATE=1433623937' \ + -9 \ + -c \ + -I. \ + -I$JEHANNE/sys/src/lib/jehanne \ + '-mcmodel=kernel' \ + -O0 \ + -static \ + -fplan9-extensions \ + -mno-red-zone \ + -fstack-protector-all \ + -ffreestanding \ + -fno-builtin \ + -g \ + -fvar-tracking \ + -fvar-tracking-assignments \ + -ffixed-r14 \ + -ffixed-r15 \ + -Wall \ + -W \ + -Wno-sign-compare \ + -Wno-missing-field-initializers \ + -Wno-unused-parameter \ + -Wno-missing-braces \ + -Wno-parentheses \ + -Wno-unknown-pragmas \ + -fasm +$LD -o workhorse \ + autogenerated.o \ + sdata.o \ + cga.o \ + usbehcipc.o \ + usbohci.o \ + usbuhci.o \ + bios32.o \ + devether.o \ + devrtc.o \ + devkbd.o \ + ether8139.o \ + ether8169.o \ + ether82557.o \ + ether82563.o \ + etherigbe.o \ + ethermii.o \ + etherm10g.o \ + pci.o \ + sdiahci.o \ + sdscsi.o \ + uarti8250.o \ + uartpci.o \ + entry.o \ + ec.o \ + l64v.o \ + l64fpu.o \ + cpuidamd64.o \ + l64idt.o \ + l64vsyscall.o \ + acpi.o \ + arch.o \ + archmp.o \ + devarch.o \ + fpu.o \ + hpet.o \ + i8253.o \ + i8259.o \ + lapic.o \ + main.o \ + memory.o \ + mmu.o \ + mp.o \ + msi.o \ + mtrr.o \ + multiboot.o \ + squidboy.o \ + syscall.o \ + systab.o \ + trap.o \ + arp.o \ + chandial.o \ + devip.o \ + ethermedium.o \ + gre.o \ + icmp6.o \ + icmp.o \ + ipaux.o \ + ip.o \ + ipifc.o \ + iproute.o \ + ipv6.o \ + loopbackmedium.o \ + netdevmedium.o \ + netlog.o \ + nullmedium.o \ + pktmedium.o \ + ptclbsum.o \ + tcp.o \ + udp.o \ + pages.o \ + raw.o \ + segments.o \ + images.o \ + alarm.o \ + alloc.o \ + allocb.o \ + awake.o \ + chan.o \ + debug.o \ + dev.o \ + dev9p.o \ + devbridge.o \ + devcap.o \ + devcons.o \ + devdup.o \ + devenv.o \ + devfs.o \ + devkprof.o \ + devpci.o \ + devpipe.o \ + devproc.o \ + devroot.o \ + devsd.o \ + devself.o \ + devshr.o \ + devsrv.o \ + devssl.o \ + devtab.o \ + devtls.o \ + devtrace.o \ + devuart.o \ + devusb.o \ + elf64.o \ + fault.o \ + getput.o \ + log.o \ + taslock.o \ + mul64fract.o \ + net.o \ + netif.o \ + parse.o \ + pgrp.o \ + portclock.o \ + print.o \ + proc.o \ + ps.o \ + qio.o \ + qlock.o \ + random.o \ + rebootcmd.o \ + ref.o \ + sysauth.o \ + syscallfmt.o \ + sysfile.o \ + sysproc.o \ + tod.o \ + uidgid.o \ + usbehci.o \ + xalloc.o \ + -z 'max-page-size=0x1000' \ + -nostdlib -T kernel.ld -g \ + $JEHANNE/arch/$ARCH/lib/klibmemlayer.a \ + $JEHANNE/arch/$ARCH/lib/klibmemdraw.a \ + $JEHANNE/arch/$ARCH/lib/klibdraw.a \ + $JEHANNE/arch/$ARCH/lib/klibip.a \ + $JEHANNE/arch/$ARCH/lib/klibc.a \ + $JEHANNE/arch/$ARCH/lib/klib9p2000.a \ + $JEHANNE/arch/$ARCH/lib/klibsec.a \ + $JEHANNE/arch/$ARCH/lib/klibmp.a \ + $JEHANNE/arch/$ARCH/lib/klibaml.a +OBJCOPY=objcopy; $TOOLPREFIX$OBJCOPY -I elf64-x86-64 -O elf32-i386 workhorse $JEHANNE/hacking/bin/workhorse.32bit +safemove workhorse $JEHANNE/hacking/bin/ #decomment to debug workhorse with gdb + +git clean -xdf ../ diff --git a/sys/src/kern/boot/boot.rc.build b/sys/src/kern/boot/boot.rc.build new file mode 100644 index 0000000..baa8143 --- /dev/null +++ b/sys/src/kern/boot/boot.rc.build @@ -0,0 +1,20 @@ +#!/cmd/rc +. $JEHANNE/arch/rc/lib/build/utils.rc + +build bootlib.rc.build + +$CC \ + printstub.c \ + boot$CONF.c \ + $CFLAGS \ + -L . \ + -lboot \ + -lip \ + -lauth \ + -ljehanne \ + -static \ + -o boot$CONF.elf.out +rm *.a + +# the following line was here for no reason: nobody in kernel link it +#data2c ramfs_boot$ARCH^cpu_ ../boot/boot$CONF.elf.out >> ../$ARCH/autogenerated.c diff --git a/sys/src/kern/boot/bootlib.rc.build b/sys/src/kern/boot/bootlib.rc.build new file mode 100644 index 0000000..30ab734 --- /dev/null +++ b/sys/src/kern/boot/bootlib.rc.build @@ -0,0 +1,32 @@ +#!/cmd/rc +. $JEHANNE/arch/rc/lib/build/utils.rc + +echo CONF $CONF +if ( ~ 0 $#CONF ) { echo Error: missing CONF environment variable && exit 1 } +cat ../build/bootCPUc.rc.template|template|rc > boot$CONF.c +#[ ! -f boot$CONF.elf.out ] || rm *.elf.out +rm -f *.o *.tag.* +$CC \ + aux.c \ + bootauth.c \ + boot.c \ + bootcache.c \ + bootip.c \ + bootrc.c \ + embed.c \ + local.c \ + paq.c \ + sac.c \ + settime.c \ + paths$CONF.c \ + -c \ + -static \ + -fplan9-extensions \ + -ffreestanding \ + -fno-builtin \ + $STACKCHECK_CFLAGS \ + $CFLAGS +prependLibraryName libboot.a +$AR -rs $JEHANNE/sys/src/kern/boot/libboot.a libboot.a-*.o +$RANLIB $JEHANNE/sys/src/kern/boot/libboot.a +rm *.o diff --git a/sys/src/kern/boot/build.json b/sys/src/kern/boot/build.json deleted file mode 100644 index 6274411..0000000 --- a/sys/src/kern/boot/build.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "A.Lib": { - "Cflags": [ - "-g", - "-Wall", - "-Wno-missing-braces", - "-Wno-parentheses", - "-Wno-unknown-pragmas", - "-O0", - "-static", - "-fplan9-extensions", - "-ffreestanding", - "-fno-builtin" - ], - "Include": [ - "/sys/src/lib/lib.json" - ], - "Install": "/sys/src/kern/boot", - "Library": "libboot.a", - "Pre": [ - "if [ x$CONF = x ]; then echo Error: missing CONF environment variable && exit 1; fi", - "mksys -o boot$CONF.c '-mode=bootamd64cpu.c' $JEHANNE/sys/src/sysconf.json", - "#[ ! -f boot$CONF.elf.out ] || rm *.elf.out" - ], - "SourceFiles": [ - "aux.c", - "bootauth.c", - "boot.c", - "bootcache.c", - "bootip.c", - "bootrc.c", - "embed.c", - "local.c", - "paq.c", - "sac.c", - "settime.c", - "paths$CONF.c" - ] - }, - "B.Exec": { - "Cflags": [ - "-9" - ], - "Include": [ - "/arch/$ARCH/include/cflags.json" - ], - "Libs": [ - "./libboot.a", - "/arch/$ARCH/lib/libip.a", - "/arch/$ARCH/lib/libauth.a", - "/arch/$ARCH/lib/libjehanne.a" - ], - "Oflags": [ - "-static" - ], - "Post": [ - "rm *.a", - "data2c ramfs_bootamd64cpu_ ../boot/boot$CONF.elf.out >> ../amd64/autogenerated.c" - ], - "Program": "boot$CONF.elf.out", - "SourceFiles": [ - "printstub.c", - "boot$CONF.c" - ] - } -} diff --git a/sys/src/kern/build/README.txt b/sys/src/kern/build/README.txt new file mode 100644 index 0000000..71d72f2 --- /dev/null +++ b/sys/src/kern/build/README.txt @@ -0,0 +1,2 @@ +Build tools for the kernel + diff --git a/sys/src/kern/build/bootCPUc.rc.template b/sys/src/kern/build/bootCPUc.rc.template new file mode 100644 index 0000000..b51edbd --- /dev/null +++ b/sys/src/kern/build/bootCPUc.rc.template @@ -0,0 +1,46 @@ +/* + * This file is part of Jehanne. + * + * Copyright (C) 2022 Giacomo Tesio + * + * Jehanne is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License. + * + * Jehanne is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jehanne. If not, see . + */ +/* automatically generated by bootCPUc.rc.template */ + +#include +#include + +#include "../boot/boot.h" + +Method method[] = { +#! ifs=' +#! ' +#! CONFIGURATION=`{sed -n '/^$/!{/^#/!p}' $JEHANNE/sys/src/kern/$ARCH/boot-methods.rc.confs} +#! for (line in $CONFIGURATION){ +#! eval $line + { "$METHOD", config$METHOD, connect$METHOD, "$ARGS", }, +#! } + { nil }, +}; + +int cpuflag = 1; +char* rootdir = "/root"; +char* bootdisk = "#S/sdE0/"; +extern void boot(int, char**); + +void +main(int argc, char **argv) +{ + boot(argc, argv); +} +int (*cfs)(int) = 0; diff --git a/sys/src/kern/build/errorh.rc.template b/sys/src/kern/build/errorh.rc.template new file mode 100644 index 0000000..0ffcc11 --- /dev/null +++ b/sys/src/kern/build/errorh.rc.template @@ -0,0 +1,26 @@ +/* + * This file is part of Jehanne. + * + * Copyright (C) 2022 Giacomo Tesio + * + * Jehanne is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License. + * + * Jehanne is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jehanne. If not, see . + */ +/* automatically generated by errstrh.rc.template */ +#! ifs=' +#! ' +#! CONFIGURATION=`{sed -n '/^$/!{/^#/!p}' $JEHANNE/sys/src/sysconf/errors.rc.confs} +#! for (line in $CONFIGURATION){ +#! eval $line +extern char $NAME[]; /* $MSG */ +#! } + diff --git a/sys/src/kern/build/errstrh.rc.template b/sys/src/kern/build/errstrh.rc.template new file mode 100644 index 0000000..864a251 --- /dev/null +++ b/sys/src/kern/build/errstrh.rc.template @@ -0,0 +1,26 @@ +/* + * This file is part of Jehanne. + * + * Copyright (C) 2022 Giacomo Tesio + * + * Jehanne is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License. + * + * Jehanne is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jehanne. If not, see . + */ +/* automatically generated by errstrh.rc.template */ +#! ifs=' +#! ' +#! CONFIGURATION=`{sed -n '/^$/!{/^#/!p}' $JEHANNE/sys/src/sysconf/errors.rc.confs} +#! for (line in $CONFIGURATION){ +#! eval $line +char $NAME[] = "$MSG"; +#! } + diff --git a/sys/src/kern/build/inith.rc.template b/sys/src/kern/build/inith.rc.template new file mode 100644 index 0000000..f77a953 --- /dev/null +++ b/sys/src/kern/build/inith.rc.template @@ -0,0 +1,57 @@ +/* + * This file is part of Jehanne. + * + * Copyright (C) 2022 Giacomo Tesio + * + * Jehanne is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License. + * + * Jehanne is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jehanne. If not, see . + */ +/* automatically generated by /sys/src/kern/build/inith.rc.template */ +#! fn base10 { +#! seq -f%0.0f $1 $1 +#! } +#! CODE=`{$READELF -W -l init|grep LOAD|sed 's/R E/R_E/'|grep R_E} +#! CODE_START=`{base10 $CODE(3)} + +int init_code_start = $CODE_START; +int init_code_end = $CODE_START + $CODE(6); +int init_code_len = $CODE(6); +uint8_t init_code_out[] = { +#! hexdump -s $CODE(2) -n $CODE(5) -v \ +#! -e '1/1 " 0x%02x, " 6/1 "0x%02x, " 1/1 " 0x%02x,\n"' \ +#! init | sed '$s/0x ,//g' +}; + +#! DATA=`{$READELF -W -l init|grep LOAD|grep RW} +#! PAGE_SIZE=`{base10 $DATA(8)} +#! DATA_START=`{base10 $DATA(3)} +#! DATA_PAGE_START=`{echo $DATA_START d $PAGE_SIZE '%-p'|dc} +#! DATA_FILE_START=`{base10 $DATA(2)} +#! DATA_PADDING=`{echo $DATA_START $DATA_PAGE_START '-p'|dc} +#! DATA_MEM_LENGTH=`{base10 $DATA(6)} +#! DATA_MEM_LENGTH=`{echo $DATA_MEM_LENGTH $DATA_PADDING '+p'|dc} +#! DATA_FILE_LENGTH=`{base10 $DATA(5)} +#! TRAILING_ZEROS=`{echo `{base10 $DATA(6)} `{base10 $DATA(5)} '-p'|dc} +int init_data_start = $DATA_PAGE_START; +int init_data_end = $DATA_PAGE_START + $DATA_MEM_LENGTH; +int init_data_len = $DATA_MEM_LENGTH; +uint8_t init_data_out[] = { +#! hexdump -n $DATA_PADDING -v \ +#! -e '1/1 " 0x%02x, " 6/1 "0x%02x, " 1/1 " 0x%02x,\n"' \ +#! /dev/zero | sed '$s/ 0x ,//g' +#! hexdump -s $DATA_FILE_START -n $DATA_FILE_LENGTH -v \ +#! -e '1/1 " 0x%02x, " 6/1 "0x%02x, " 1/1 " 0x%02x,\n"' \ +#! init | sed '$s/ 0x ,//g' +#! hexdump -n $TRAILING_ZEROS -v \ +#! -e '1/1 " 0x%02x, " 6/1 "0x%02x, " 1/1 " 0x%02x,\n"' \ +#! /dev/zero | sed '$s/ 0x ,//g' +}; diff --git a/sys/src/kern/build/kernelconf.rc.template b/sys/src/kern/build/kernelconf.rc.template new file mode 100644 index 0000000..5549d61 --- /dev/null +++ b/sys/src/kern/build/kernelconf.rc.template @@ -0,0 +1,145 @@ +/* + * This file is part of Jehanne. + * + * Copyright (C) 2022 Giacomo Tesio + * + * Jehanne is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License. + * + * Jehanne is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jehanne. If not, see . + */ +#include "u.h" +#include "../port/lib.h" +#include "mem.h" +#include "dat.h" +#include "fns.h" +#include "../port/error.h" +#include "io.h" + +void +rdb(void) +{ + splhi(); + iprint("rdb...not installed\n"); + for(;;); +} + +#! for (file in ./ramdisk/*) { +#! FNAME=`{basename $file} +#! FSIZE=`{cat $file|wc -c} +static unsigned char ramfs_$FNAME^_code[] = { +#! cat $file | +#! hexdump -v -e '1/1 " 0x%02x, " 6/1 "0x%02x, " 1/1 " 0x%02x,\n"' | +#! sed '$s/0x ,/0x00,/g' + 0x00, +}; +int ramfs_$FNAME^_len = $FSIZE; +#! } + +#! for (device in $DEVICES) { +extern Dev $device^devtab; +#! } + +Dev *devtab[] = { +#! for (device in $DEVICES) { + &$device^devtab, +#! } + nil, +}; + +#! for (driver in $LINKS) { +extern void $driver^link(void); +#! } + +void +links(void) +{ + +#! for (file in ./ramdisk/*) { +#! FNAME=`{basename $file} + addbootfile("$FNAME^", ramfs_$FNAME^_code, ramfs_$FNAME^_len); +#! } + +#! for (driver in $LINKS) { + $driver^link(); +#! } +} + +#include "../ip/ip.h" + +#! for (protocol in $PROTOCOLS) { +extern void $protocol^init(Fs*); +#! } + +void (*ipprotoinit[])(Fs*) = { +#! for (protocol in $PROTOCOLS) { + $protocol^init, +#! } + nil, +}; + +#include "../port/sd.h" + +#! for (interface in $SDINTERFACES) { +extern SDifc $interface^ifc; +#! } + +SDifc* sdifc[] = { +#! for (interface in $SDINTERFACES) { + &$interface^ifc, +#! } + nil, +}; + +#! for (interface in $UARTS) { +extern PhysUart $interface^physuart; +#! } + +PhysUart* physuart[] = { +#! for (interface in $UARTS) { + &$interface^physuart, +#! } + nil, +}; + +#define Image IMAGE +#include +#include +#include +#include "screen.h" + +#! for (driver in $VGA) { +extern VGAdev $driver^dev; +#! } + +VGAdev* vgadev[] = { +#! for (driver in $VGA) { + &$driver^dev, +#! } + nil, +}; + +#! for (driver in $VGA) { +extern VGAcur $driver^cur; +#! } + +VGAcur* vgacur[] = { +#! for (driver in $VGA) { + &$driver^cur, +#! } + nil, +}; + +int cpuserver = 1; +uint32_t kerndate = 1; +int printallsyscalls; + +char* conffile = "$CONFFILE"; + diff --git a/sys/src/kern/build/ksyscalls.rc.template b/sys/src/kern/build/ksyscalls.rc.template new file mode 100644 index 0000000..a750fa8 --- /dev/null +++ b/sys/src/kern/build/ksyscalls.rc.template @@ -0,0 +1,292 @@ +/* + * This file is part of Jehanne. + * + * Copyright (C) 2022 Giacomo Tesio + * + * Jehanne is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License. + * + * Jehanne is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jehanne. If not, see . + */ +/* automatically generated by ksyscalls.rc.template */ +#include "u.h" +#include "../port/lib.h" +#include "mem.h" +#include "dat.h" +#include "fns.h" +#include "../port/error.h" +#include "ureg.h" + +extern void fmtrwdata(Fmt* f, char* a, int n); +extern void fmtuserstring(Fmt* f, const char* a); +extern void fmtuserstringlist(Fmt* f, const char** argv); + +#! . ../$ARCH/registry-$ARCH.rc.conf +#! ifs=' +#! ' +#! CONFIGURATION=`{sed -n '/^$/!{/^#/!p}' $JEHANNE/sys/src/sysconf/syscalls.rc.confs} +#! for (line in $CONFIGURATION){ +#! eval $line +#! OTHERARGS=() +#! if( ! ~ 1 $#ARGS){ +#! OTHERARGS=(', '^$ARGS(2-)) +#! } +extern $RET sys$NAME($ARGS(1) $"OTHERARGS); +#! } + +#! for (line in $CONFIGURATION){ +#! eval $line +#! CALLARGS=() +static void +wrap_$NAME^(ScRet* ret, Ureg* ureg) +{ +#! for(idx in `{seq $#ARGS}){ +#! CALLARGS=($CALLARGS a$idx) + $ARGS($idx) a$idx; +#! } + +#! for(idx in `{seq $#ARGS}){ + a$idx = ($ARGS($idx))ureg->$UREG($idx); +#! } + +#! OTHERARGS=() +#! if( ! ~ 1 $#CALLARGS){ +#! OTHERARGS=', '^$CALLARGS(2-) +#! } + + ret->$$RET = sys$NAME($CALLARGS(1) $"OTHERARGS); +} +#! } + +int nsyscall = $#CONFIGURATION; + +ScRet +default_syscall_ret(int syscall) +{ + static ScRet zero; + ScRet ret = zero; + switch(syscall){ +#! for (line in $CONFIGURATION){ +#! eval $line + case $ID: + ret.$$RET = ($RET)-1; + break; +#! } + + default: + ret.vl = -1; + break; + } + return ret; +} + +char* +syscall_name(int syscall) +{ + switch(syscall){ +#! for (line in $CONFIGURATION){ +#! eval $line + case $ID: + return "$NAME"; +#! } + + default: + return nil; + } +} + +void +dispatch_syscall(int syscall, Ureg* ureg, ScRet* ret) +{ + switch(syscall){ +#! for (line in $CONFIGURATION){ +#! eval $line + case $ID: + wrap_$NAME(ret, ureg); + break; +#! } + default: + panic("dispatch_syscall: bad sys call number %d pc %#p\n", syscall, ureg->ip); + } +} + +#! for (line in $CONFIGURATION){ +#! eval $line +static void +enter_$NAME(Fmt* fmt, Ureg* ureg) +{ +#! for(idx in `{seq $#ARGS}){ +#! CALLARGS=($CALLARGS a$idx) + $ARGS($idx) a$idx; +#! } + +#! for(idx in `{seq $#ARGS}){ + a$idx = ($ARGS($idx))ureg->$UREG($idx); +#! } + + jehanne_fmtprint(fmt, "$NAME %#p >", ureg->ip); + if(up->notified) + jehanne_fmtprint(fmt, "!"); +#! for(idx in `{seq $#ARGS}){ +#! if( ~ $NAME pwrite && ~ $idx 2 ) { + fmtrwdata(fmt, (char*)a2, MIN(a3, 64)); +#! } +#! if not switch($ARGS($idx)) { +#! case 'int'; + jehanne_fmtprint(fmt, " %d", a$idx); +#! case 'int32_t'; + jehanne_fmtprint(fmt, " %d", a$idx); +#! case 'unsigned int'; + jehanne_fmtprint(fmt, " %#ux", a$idx); +#! case 'uint32_t'; + jehanne_fmtprint(fmt, " %#ux", a$idx); +#! case 'long'; + jehanne_fmtprint(fmt, " %lld", a$idx); +#! case 'int64_t'; + jehanne_fmtprint(fmt, " %lld", a$idx); +#! case 'unsigned long'; + jehanne_fmtprint(fmt, " %#lud", a$idx); +#! case 'uint64_t'; + jehanne_fmtprint(fmt, " %#lud", a$idx); +#! case 'void*'; + jehanne_fmtprint(fmt, " %#p", a$idx); +#! case 'uint8_t*'; + jehanne_fmtprint(fmt, " %#p", a$idx); +#! case 'const void*'; + jehanne_fmtprint(fmt, " %#p", a$idx); +#! case 'const uint8_t*'; + jehanne_fmtprint(fmt, " %#p", a$idx); +#! case 'int32_t*'; + jehanne_fmtprint(fmt, " %#p(%d)", a$idx, a$idx); +#! case 'int*'; + jehanne_fmtprint(fmt, " %#p(%d)", a$idx, a$idx); +#! case 'const int32_t*'; + jehanne_fmtprint(fmt, " %#p(%d)", a$idx, a$idx); +#! case 'const int*'; + jehanne_fmtprint(fmt, " %#p(%d)", a$idx, a$idx); +#! case 'const char*'; + fmtuserstring(fmt, a$idx); +#! case 'char*'; + fmtuserstring(fmt, a$idx); +#! case 'const char**'; + fmtuserstringlist(fmt, a$idx); +#! case 'char**'; + fmtuserstringlist(fmt, a$idx); +#! } +#! } + + jehanne_fmtprint(fmt, "\n"); +} +#! } + +char* +syscallfmt(int syscall, Ureg* ureg) +{ + Fmt fmt; + jehanne_fmtstrinit(&fmt); + jehanne_fmtprint(&fmt, "%d %s ", up->pid, up->text); + + switch(syscall){ +#! for (line in $CONFIGURATION){ +#! eval $line + case $ID: + enter_$NAME^(&fmt, ureg); + break; +#! } + default: + panic("syscallfmt: bad sys call number %d pc %#p\n", syscall, ureg->ip); + } + + return jehanne_fmtstrflush(&fmt); +} + +#! for (line in $CONFIGURATION){ +#! eval $line +static void +exit_$NAME^(Fmt* fmt, Ureg* ureg, ScRet* ret) +{ + jehanne_fmtprint(fmt, "$NAME %#p <", ureg->ip); + if(up->notified) + jehanne_fmtprint(fmt, "!"); +#! switch($RET) { +#! case 'int': + jehanne_fmtprint(fmt, " %d", ret->$$RET); +#! case 'int32_t': + jehanne_fmtprint(fmt, " %d", ret->$$RET); +#! case 'unsigned int': + jehanne_fmtprint(fmt, " %#ux", ret->$$RET); +#! case 'uint32_t': + jehanne_fmtprint(fmt, " %#ux", ret->$$RET); +#! case 'long': + jehanne_fmtprint(fmt, " %lld", ret->$$RET); +#! case 'int64_t': + jehanne_fmtprint(fmt, " %lld", ret->$$RET); +#! case 'unsigned long': + jehanne_fmtprint(fmt, " %#llud", ret->$$RET); +#! case 'uint64_t': + jehanne_fmtprint(fmt, " %#llud", ret->$$RET); +#! case 'void': + jehanne_fmtprint(fmt, " %#llud", ret->$$RET); +#! case 'void*': + jehanne_fmtprint(fmt, " %#p", ret->$$RET); +#! case 'uintptr_t': + jehanne_fmtprint(fmt, " %#p", ret->$$RET); +#! case 'const void*': + jehanne_fmtprint(fmt, " %#p", ret->$$RET); +#! case 'const uintptr_t': + jehanne_fmtprint(fmt, " %#p", ret->$$RET); +#! case 'int32_t*': + jehanne_fmtprint(fmt, " %#p(%d)", ret->$$RET, *ret->$$RET); +#! case 'int*': + jehanne_fmtprint(fmt, " %#p(%d)", ret->$$RET, *ret->$$RET); +#! case 'const int32_t*': + jehanne_fmtprint(fmt, " %#p(%d)", ret->$$RET, *ret->$$RET); +#! case 'const int*': + jehanne_fmtprint(fmt, " %#p(%d)", ret->$$RET, *ret->$$RET); +#! } +#! switch($NAME) { +#! case pread: + fmtrwdata(fmt, (char*)ureg->$UREG(2), MIN(ureg->$UREG(3), 64)); +#! case fd2path: + fmtrwdata(fmt, (char*)ureg->$UREG(2), MIN(ureg->$UREG(3), 64)); +#! case await: + fmtrwdata(fmt, (char*)ureg->$UREG(1), MIN(ureg->$UREG(2), 64)); +#! case errstr: + fmtrwdata(fmt, (char*)ureg->$UREG(1), MIN(ureg->$UREG(2), 64)); +#! } +} +#! } + +char* +sysretfmt(int syscall, Ureg* ureg, ScRet* ret, uint64_t start, uint64_t stop) +{ + Fmt fmt; + jehanne_fmtstrinit(&fmt); + jehanne_fmtprint(&fmt, "%d %s ", up->pid, up->text); + + switch(syscall){ +#! for (line in $CONFIGURATION){ +#! eval $line + case $ID: + exit_$NAME^(&fmt, ureg, ret); + break; +#! } + default: + panic("sysretfmt: bad sys call number %d pc %#p\n", syscall, ureg->ip); + } + + if(0 > ret->vl){ + jehanne_fmtprint(&fmt, " %s %#llud %#llud\n", up->syserrstr, start, stop-start); + } else { + jehanne_fmtprint(&fmt, " \"\" %#llud %#llud\n", start, stop-start); + } + + return jehanne_fmtstrflush(&fmt); +} diff --git a/sys/src/kern/ip/include.json b/sys/src/kern/ip/include.json deleted file mode 100644 index 929f814..0000000 --- a/sys/src/kern/ip/include.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "ip": { - "Deferred": [ - "../ip/inferno.c", - "../ip/ipmux.c", - "../ip/rudp.c" - ], - "SourceFiles": [ - "../ip/arp.c", - "../ip/chandial.c", - "../ip/devip.c", - "../ip/ethermedium.c", - "../ip/gre.c", - "../ip/icmp6.c", - "../ip/icmp.c", - "../ip/ipaux.c", - "../ip/ip.c", - "../ip/ipifc.c", - "../ip/iproute.c", - "../ip/ipv6.c", - "../ip/loopbackmedium.c", - "../ip/netdevmedium.c", - "../ip/netlog.c", - "../ip/nullmedium.c", - "../ip/pktmedium.c", - "../ip/ptclbsum.c", - "../ip/tcp.c", - "../ip/udp.c" - ] - } -} diff --git a/sys/src/kern/port/include.json b/sys/src/kern/port/include.json deleted file mode 100644 index abff8a7..0000000 --- a/sys/src/kern/port/include.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "port": { - "Cflags": [ - "-fasm" - ], - "Pre": [ - "mksys -o ../port/error.h '-mode=error.h' $JEHANNE/sys/src/sysconf.json" - ], - "SourceFiles": [ - "../port/umem/pages.c", - "../port/umem/raw.c", - "../port/umem/segments.c", - "../port/umem/images.c", - - "../port/alarm.c", - "../port/alloc.c", - "../port/allocb.c", - "../port/awake.c", - "../port/chan.c", - "../port/debug.c", - "../port/dev.c", - "../port/dev9p.c", - "../port/devbridge.c", - "../port/devcap.c", - "../port/devcons.c", - "../port/devdup.c", - "../port/devenv.c", - "../port/devfs.c", - "../port/devkprof.c", - "../port/devpci.c", - "../port/devpipe.c", - "../port/devproc.c", - "../port/devroot.c", - "../port/devsd.c", - "../port/devself.c", - "../port/devshr.c", - "../port/devsrv.c", - "../port/devssl.c", - "../port/devtab.c", - "../port/devtls.c", - "../port/devtrace.c", - "../port/devuart.c", - "../port/devusb.c", - "../port/elf64.c", - "../port/fault.c", - "../port/getput.c", - "../port/log.c", - "../port/taslock.c", - "../port/mul64fract.c", - "../port/net.c", - "../port/netif.c", - "../port/parse.c", - "../port/pgrp.c", - "../port/portclock.c", - "../port/print.c", - "../port/proc.c", - "../port/ps.c", - "../port/qio.c", - "../port/qlock.c", - "../port/random.c", - "../port/rebootcmd.c", - "../port/ref.c", - "../port/sysauth.c", - "../port/syscallfmt.c", - "../port/sysfile.c", - "../port/sysproc.c", - "../port/tod.c", - "../port/uidgid.c", - "../port/usbehci.c", - "../port/xalloc.c" - ] - } -} diff --git a/sys/src/lib/9p/9p.rc.build b/sys/src/lib/9p/9p.rc.build new file mode 100644 index 0000000..42a966a --- /dev/null +++ b/sys/src/lib/9p/9p.rc.build @@ -0,0 +1,29 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + auth.c \ + dirread.c \ + fid.c \ + file.c \ + intmap.c \ + listen.c \ + mem.c \ + queue.c \ + req.c \ + parse.c \ + post.c \ + rfork.c \ + srv.c \ + thread.c \ + uid.c \ + util.c \ + -DPORTABLE_SYSCALLS \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName lib9p.a +$AR -rs $JEHANNE/arch/$ARCH/lib/lib9p.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/lib9p.a +rm *.o diff --git a/sys/src/lib/9p/build.json b/sys/src/lib/9p/build.json deleted file mode 100644 index 7aa43af..0000000 --- a/sys/src/lib/9p/build.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "lib9p": { - "Cflags": [ - "-DPORTABLE_SYSCALLS" - ], - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "lib9p.a", - "SourceFiles": [ - "auth.c", - "dirread.c", - "fid.c", - "file.c", - "intmap.c", - "listen.c", - "mem.c", - "queue.c", - "req.c", - "parse.c", - "post.c", - "rfork.c", - "srv.c", - "thread.c", - "uid.c", - "util.c" - ] - } -} diff --git a/sys/src/lib/9p2000/9p2000.rc.build b/sys/src/lib/9p2000/9p2000.rc.build new file mode 100644 index 0000000..dbc0185 --- /dev/null +++ b/sys/src/lib/9p2000/9p2000.rc.build @@ -0,0 +1,30 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + convM2S.c \ + convS2M.c \ + fcallfmt.c \ + read9pmsg.c \ + -fasm \ + $KLIB_CFLAGS +prependLibraryName klib9p2000.a +$AR -rs $JEHANNE/arch/$ARCH/lib/klib9p2000.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/klib9p2000.a +rm *.o + +rm -f *.o *.tag.* +$CC \ + convM2S.c \ + convS2M.c \ + fcallfmt.c \ + read9pmsg.c \ + -fasm \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName lib9p2000.a +$AR -rs $JEHANNE/arch/$ARCH/lib/lib9p2000.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/lib9p2000.a +rm *.o diff --git a/sys/src/lib/9p2000/build.json b/sys/src/lib/9p2000/build.json deleted file mode 100644 index 6792cce..0000000 --- a/sys/src/lib/9p2000/build.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "9p2000": { - "Cflags": [ - "-fasm" - ], - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "lib9p2000.a", - "SourceFiles": [ - "convM2S.c", - "convS2M.c", - "fcallfmt.c", - "read9pmsg.c" - ] - } -} diff --git a/sys/src/lib/9p2000/klib9p2000.json b/sys/src/lib/9p2000/klib9p2000.json deleted file mode 100644 index c55fb30..0000000 --- a/sys/src/lib/9p2000/klib9p2000.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "9p2000": { - "Cflags": [ - "-fasm" - ], - "Include": [ - "../klib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "klib9p2000.a", - "SourceFiles": [ - "convM2S.c", - "convS2M.c", - "fcallfmt.c", - "read9pmsg.c" - ] - } -} diff --git a/sys/src/lib/9p2000/klib9p2000.rc.build b/sys/src/lib/9p2000/klib9p2000.rc.build new file mode 100644 index 0000000..4ae3528 --- /dev/null +++ b/sys/src/lib/9p2000/klib9p2000.rc.build @@ -0,0 +1,14 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + convM2S.c \ + convS2M.c \ + fcallfmt.c \ + read9pmsg.c \ + $KLIB_CFLAGS +prependLibraryName klib9p2000.a +$AR -rs $JEHANNE/arch/$ARCH/lib/klib9p2000.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/klib9p2000.a +rm *.o diff --git a/sys/src/lib/String/String.rc.build b/sys/src/lib/String/String.rc.build new file mode 100644 index 0000000..90fb4bc --- /dev/null +++ b/sys/src/lib/String/String.rc.build @@ -0,0 +1,29 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + s_alloc.c \ + s_append.c \ + s_array.c \ + s_copy.c \ + s_getline.c \ + s_grow.c \ + s_memappend.c \ + s_nappend.c \ + s_parse.c \ + s_putc.c \ + s_rdinstack.c \ + s_read.c \ + s_read_line.c \ + s_reset.c \ + s_terminate.c \ + s_tolower.c \ + s_unique.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libString.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libString.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libString.a +rm *.o diff --git a/sys/src/lib/String/build.json b/sys/src/lib/String/build.json deleted file mode 100644 index 84d0c49..0000000 --- a/sys/src/lib/String/build.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "libString": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libString.a", - "SourceFiles": [ - "s_alloc.c", - "s_append.c", - "s_array.c", - "s_copy.c", - "s_getline.c", - "s_grow.c", - "s_memappend.c", - "s_nappend.c", - "s_parse.c", - "s_putc.c", - "s_rdinstack.c", - "s_read.c", - "s_read_line.c", - "s_reset.c", - "s_terminate.c", - "s_tolower.c", - "s_unique.c" - ] - } -} diff --git a/sys/src/lib/aml/aml.rc.build b/sys/src/lib/aml/aml.rc.build new file mode 100644 index 0000000..cd6fe23 --- /dev/null +++ b/sys/src/lib/aml/aml.rc.build @@ -0,0 +1,18 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + aml.c \ + amlalloc.c \ + amldelay.c \ + amlmapio.c \ + amlunmapio.c \ + -fasm \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libaml.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libaml.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libaml.a +rm *.o diff --git a/sys/src/lib/aml/build.json b/sys/src/lib/aml/build.json deleted file mode 100644 index 325db1a..0000000 --- a/sys/src/lib/aml/build.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "Libaml": { - "Cflags": [ - "-fasm" - ], - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libaml.a", - "SourceFiles": [ - "aml.c", - "amlalloc.c", - "amldelay.c", - "amlmapio.c", - "amlunmapio.c" - ] - } -} diff --git a/sys/src/lib/aml/klibaml.json b/sys/src/lib/aml/klibaml.json deleted file mode 100644 index 7857e5f..0000000 --- a/sys/src/lib/aml/klibaml.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "KernelLibaml": { - "Cflags": [ - "-fasm" - ], - "Include": [ - "../klib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "klibaml.a", - "SourceFiles": [ - "aml.c", - "amlalloc.c", - "amldelay.c", - "amlmapio.c", - "amlunmapio.c" - ] - } -} diff --git a/sys/src/lib/aml/klibaml.rc.build b/sys/src/lib/aml/klibaml.rc.build new file mode 100644 index 0000000..95902e3 --- /dev/null +++ b/sys/src/lib/aml/klibaml.rc.build @@ -0,0 +1,16 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + aml.c \ + amlalloc.c \ + amldelay.c \ + amlmapio.c \ + amlunmapio.c \ + -fasm \ + $KLIB_CFLAGS +prependLibraryName klibaml.a +$AR -rs $JEHANNE/arch/$ARCH/lib/klibaml.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/klibaml.a +rm *.o diff --git a/sys/src/lib/auth/auth.rc.build b/sys/src/lib/auth/auth.rc.build new file mode 100644 index 0000000..49d5a4d --- /dev/null +++ b/sys/src/lib/auth/auth.rc.build @@ -0,0 +1,28 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + amount.c \ + amount_getkey.c \ + attr.c \ + auth_attr.c \ + auth_challenge.c \ + auth_chuid.c \ + auth_getkey.c \ + auth_getuserpasswd.c \ + auth_proxy.c \ + auth_respond.c \ + auth_rpc.c \ + auth_userpasswd.c \ + auth_wep.c \ + login.c \ + newns.c \ + noworld.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libauth.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libauth.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libauth.a +rm *.o diff --git a/sys/src/lib/auth/build.json b/sys/src/lib/auth/build.json deleted file mode 100644 index efcb868..0000000 --- a/sys/src/lib/auth/build.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "libauth": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libauth.a", - "SourceFiles": [ - "amount.c", - "amount_getkey.c", - "attr.c", - "auth_attr.c", - "auth_challenge.c", - "auth_chuid.c", - "auth_getkey.c", - "auth_getuserpasswd.c", - "auth_proxy.c", - "auth_respond.c", - "auth_rpc.c", - "auth_userpasswd.c", - "auth_wep.c", - "login.c", - "newns.c", - "noworld.c" - ] - } -} diff --git a/sys/src/lib/authsrv/authsrv.rc.build b/sys/src/lib/authsrv/authsrv.rc.build new file mode 100644 index 0000000..7a549b3 --- /dev/null +++ b/sys/src/lib/authsrv/authsrv.rc.build @@ -0,0 +1,32 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + _asgetpakkey.c \ + _asgetticket.c \ + _asgetresp.c \ + _asrequest.c \ + _asrdresp.c \ + authpak.c \ + authdial.c \ + convA2M.c \ + convM2A.c \ + convM2PR.c \ + convM2T.c \ + convM2TR.c \ + convPR2M.c \ + convT2M.c \ + convTR2M.c \ + form1.c \ + nvcsum.c \ + passtokey.c \ + readnvram.c \ + -fno-strict-aliasing \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libauthsrv.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libauthsrv.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libauthsrv.a +rm *.o diff --git a/sys/src/lib/authsrv/build.json b/sys/src/lib/authsrv/build.json deleted file mode 100644 index 7dbbf97..0000000 --- a/sys/src/lib/authsrv/build.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "libauthsrv": { - "Include": [ - "../lib.json" - ], - "Cflags": [ - "-fno-strict-aliasing" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libauthsrv.a", - "SourceFiles": [ - "_asgetpakkey.c", - "_asgetticket.c", - "_asgetresp.c", - "_asrequest.c", - "_asrdresp.c", - "authpak.c", - "authdial.c", - "convA2M.c", - "convM2A.c", - "convM2PR.c", - "convM2T.c", - "convM2TR.c", - "convPR2M.c", - "convT2M.c", - "convTR2M.c", - "form1.c", - "nvcsum.c", - "passtokey.c", - "readnvram.c" - ] - } -} diff --git a/sys/src/lib/avl/avl.rc.build b/sys/src/lib/avl/avl.rc.build new file mode 100644 index 0000000..6ea5db7 --- /dev/null +++ b/sys/src/lib/avl/avl.rc.build @@ -0,0 +1,13 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + avl.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libavl.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libavl.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libavl.a +rm *.o diff --git a/sys/src/lib/avl/build.json b/sys/src/lib/avl/build.json deleted file mode 100644 index d2cf031..0000000 --- a/sys/src/lib/avl/build.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "libavl": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libavl.a", - "SourceFiles": [ - "avl.c" - ] - } -} diff --git a/sys/src/lib/bio/bio.rc.build b/sys/src/lib/bio/bio.rc.build new file mode 100644 index 0000000..8029ee5 --- /dev/null +++ b/sys/src/lib/bio/bio.rc.build @@ -0,0 +1,29 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + bbuffered.c \ + bfildes.c \ + bflush.c \ + bgetrune.c \ + bgetc.c \ + bgetd.c \ + binit.c \ + boffset.c \ + bprint.c \ + bputrune.c \ + bputc.c \ + brdline.c \ + brdstr.c \ + bread.c \ + bseek.c \ + bwrite.c \ + bvprint.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libbio.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libbio.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libbio.a +rm *.o diff --git a/sys/src/lib/bio/build.json b/sys/src/lib/bio/build.json deleted file mode 100644 index 337c1d5..0000000 --- a/sys/src/lib/bio/build.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "libbio": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libbio.a", - "SourceFiles": [ - "bbuffered.c", - "bfildes.c", - "bflush.c", - "bgetrune.c", - "bgetc.c", - "bgetd.c", - "binit.c", - "boffset.c", - "bprint.c", - "bputrune.c", - "bputc.c", - "brdline.c", - "brdstr.c", - "bread.c", - "bseek.c", - "bwrite.c", - "bvprint.c" - ] - } -} diff --git a/sys/src/lib/complete/build.json b/sys/src/lib/complete/build.json deleted file mode 100644 index 2c261df..0000000 --- a/sys/src/lib/complete/build.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "libcomplete": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libcomplete.a", - "SourceFiles": [ - "complete.c" - ] - } -} diff --git a/sys/src/lib/complete/complete.rc.build b/sys/src/lib/complete/complete.rc.build new file mode 100644 index 0000000..ae1cc08 --- /dev/null +++ b/sys/src/lib/complete/complete.rc.build @@ -0,0 +1,13 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + complete.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libcomplete.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libcomplete.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libcomplete.a +rm *.o diff --git a/sys/src/lib/control/build.json b/sys/src/lib/control/build.json deleted file mode 100644 index 1510142..0000000 --- a/sys/src/lib/control/build.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "libcontrol": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libcontrol.a", - "SourceFiles": [ - "box.c", - "button.c", - "cache.c", - "control.c", - "entry.c", - "group.c", - "keyboard.c", - "label.c", - "menu.c", - "radiobutton.c", - "slider.c", - "tabs.c", - "text.c", - "textbutton.c", - "textbutton3.c" - ] - } -} diff --git a/sys/src/lib/control/control.rc.build b/sys/src/lib/control/control.rc.build new file mode 100644 index 0000000..8bc0af0 --- /dev/null +++ b/sys/src/lib/control/control.rc.build @@ -0,0 +1,27 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + box.c \ + button.c \ + cache.c \ + control.c \ + entry.c \ + group.c \ + keyboard.c \ + label.c \ + menu.c \ + radiobutton.c \ + slider.c \ + tabs.c \ + text.c \ + textbutton.c \ + textbutton3.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libcontrol.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libcontrol.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libcontrol.a +rm *.o diff --git a/sys/src/lib/disk/build.json b/sys/src/lib/disk/build.json deleted file mode 100644 index 03b2a39..0000000 --- a/sys/src/lib/disk/build.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "libdisk": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libdisk.a", - "SourceFiles": [ - "disk.c", - "proto.c", - "scsi.c", - "scsierrs.c" - ] - } -} diff --git a/sys/src/lib/disk/disk.rc.build b/sys/src/lib/disk/disk.rc.build new file mode 100644 index 0000000..98e3faa --- /dev/null +++ b/sys/src/lib/disk/disk.rc.build @@ -0,0 +1,16 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + disk.c \ + proto.c \ + scsi.c \ + scsierrs.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libdisk.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libdisk.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libdisk.a +rm *.o diff --git a/sys/src/lib/draw/build.json b/sys/src/lib/draw/build.json deleted file mode 100644 index 640f2ee..0000000 --- a/sys/src/lib/draw/build.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "Libdraw": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libdraw.a", - "SourceFiles": [ - "alloc.c", - "allocimagemix.c", - "arith.c", - "bezier.c", - "border.c", - "buildfont.c", - "bytesperline.c", - "chan.c", - "cloadimage.c", - "computil.c", - "creadimage.c", - "debug.c", - "defont.c", - "draw.c", - "drawrepl.c", - "egetrect.c", - "ellipse.c", - "emenuhit.c", - "event.c", - "fmt.c", - "font.c", - "freesubfont.c", - "getdefont.c", - "getrect.c", - "getsubfont.c", - "icossin.c", - "icossin2.c", - "init.c", - "keyboard.c", - "line.c", - "menuhit.c", - "mkfont.c", - "mouse.c", - "newwindow.c", - "openfont.c", - "poly.c", - "loadimage.c", - "readcolmap.c", - "readimage.c", - "readsubfont.c", - "rectclip.c", - "replclipr.c", - "rgb.c", - "scroll.c", - "string.c", - "stringbg.c", - "stringsubfont.c", - "stringwidth.c", - "subfont.c", - "subfontcache.c", - "subfontname.c", - "unloadimage.c", - "namedimage.c", - "window.c", - "writecolmap.c", - "writeimage.c", - "writesubfont.c" - ] - } -} diff --git a/sys/src/lib/draw/draw.rc.build b/sys/src/lib/draw/draw.rc.build new file mode 100644 index 0000000..59a388f --- /dev/null +++ b/sys/src/lib/draw/draw.rc.build @@ -0,0 +1,69 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + alloc.c \ + allocimagemix.c \ + arith.c \ + bezier.c \ + border.c \ + buildfont.c \ + bytesperline.c \ + chan.c \ + cloadimage.c \ + computil.c \ + creadimage.c \ + debug.c \ + defont.c \ + draw.c \ + drawrepl.c \ + egetrect.c \ + ellipse.c \ + emenuhit.c \ + event.c \ + fmt.c \ + font.c \ + freesubfont.c \ + getdefont.c \ + getrect.c \ + getsubfont.c \ + icossin.c \ + icossin2.c \ + init.c \ + keyboard.c \ + line.c \ + menuhit.c \ + mkfont.c \ + mouse.c \ + newwindow.c \ + openfont.c \ + poly.c \ + loadimage.c \ + readcolmap.c \ + readimage.c \ + readsubfont.c \ + rectclip.c \ + replclipr.c \ + rgb.c \ + scroll.c \ + string.c \ + stringbg.c \ + stringsubfont.c \ + stringwidth.c \ + subfont.c \ + subfontcache.c \ + subfontname.c \ + unloadimage.c \ + namedimage.c \ + window.c \ + writecolmap.c \ + writeimage.c \ + writesubfont.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libdraw.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libdraw.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libdraw.a +rm *.o diff --git a/sys/src/lib/draw/klibdraw.json b/sys/src/lib/draw/klibdraw.json deleted file mode 100644 index 5c7feb3..0000000 --- a/sys/src/lib/draw/klibdraw.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "KernelLibdraw": { - "Include": [ - "../klib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "klibdraw.a", - "SourceFiles": [ - "alloc.c", - "allocimagemix.c", - "arith.c", - "bezier.c", - "border.c", - "buildfont.c", - "bytesperline.c", - "chan.c", - "cloadimage.c", - "computil.c", - "creadimage.c", - "debug.c", - "defont.c", - "draw.c", - "drawrepl.c", - "egetrect.c", - "ellipse.c", - "emenuhit.c", - "fmt.c", - "font.c", - "freesubfont.c", - "getdefont.c", - "getrect.c", - "icossin.c", - "icossin2.c", - "line.c", - "menuhit.c", - "mkfont.c", - "poly.c", - "loadimage.c", - "readcolmap.c", - "readimage.c", - "rectclip.c", - "replclipr.c", - "rgb.c", - "scroll.c", - "string.c", - "stringbg.c", - "stringsubfont.c", - "stringwidth.c", - "subfont.c", - "subfontcache.c", - "subfontname.c", - "window.c" - ] - } -} diff --git a/sys/src/lib/draw/klibdraw.rc.build b/sys/src/lib/draw/klibdraw.rc.build new file mode 100644 index 0000000..9a5c33a --- /dev/null +++ b/sys/src/lib/draw/klibdraw.rc.build @@ -0,0 +1,54 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + alloc.c \ + allocimagemix.c \ + arith.c \ + bezier.c \ + border.c \ + buildfont.c \ + bytesperline.c \ + chan.c \ + cloadimage.c \ + computil.c \ + creadimage.c \ + debug.c \ + defont.c \ + draw.c \ + drawrepl.c \ + egetrect.c \ + ellipse.c \ + emenuhit.c \ + fmt.c \ + font.c \ + freesubfont.c \ + getdefont.c \ + getrect.c \ + icossin.c \ + icossin2.c \ + line.c \ + menuhit.c \ + mkfont.c \ + poly.c \ + loadimage.c \ + readcolmap.c \ + readimage.c \ + rectclip.c \ + replclipr.c \ + rgb.c \ + scroll.c \ + string.c \ + stringbg.c \ + stringsubfont.c \ + stringwidth.c \ + subfont.c \ + subfontcache.c \ + subfontname.c \ + window.c \ + $KLIB_CFLAGS +prependLibraryName klibdraw.a +$AR -rs $JEHANNE/arch/$ARCH/lib/klibdraw.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/klibdraw.a +rm *.o diff --git a/sys/src/lib/flate/build.json b/sys/src/lib/flate/build.json deleted file mode 100644 index 42baa88..0000000 --- a/sys/src/lib/flate/build.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "libflate": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libflate.a", - "SourceFiles": [ - "deflate.c", - "deflatezlib.c", - "deflateblock.c", - "deflatezlibblock.c", - "inflate.c", - "inflatezlib.c", - "inflateblock.c", - "inflatezlibblock.c", - "flateerr.c", - "crc.c", - "adler.c" - ] - } -} diff --git a/sys/src/lib/flate/flate.rc.build b/sys/src/lib/flate/flate.rc.build new file mode 100644 index 0000000..08113ba --- /dev/null +++ b/sys/src/lib/flate/flate.rc.build @@ -0,0 +1,23 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + deflate.c \ + deflatezlib.c \ + deflateblock.c \ + deflatezlibblock.c \ + inflate.c \ + inflatezlib.c \ + inflateblock.c \ + inflatezlibblock.c \ + flateerr.c \ + crc.c \ + adler.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libflate.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libflate.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libflate.a +rm *.o diff --git a/sys/src/lib/frame/build.json b/sys/src/lib/frame/build.json deleted file mode 100644 index 124184d..0000000 --- a/sys/src/lib/frame/build.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "libframe": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libframe.a", - "SourceFiles": [ - "frbox.c", - "frdraw.c", - "frdelete.c", - "frinit.c", - "frinsert.c", - "frptofchar.c", - "frselect.c", - "frstr.c", - "frutil.c" - ] - } -} diff --git a/sys/src/lib/frame/frame.rc.build b/sys/src/lib/frame/frame.rc.build new file mode 100644 index 0000000..937e6b9 --- /dev/null +++ b/sys/src/lib/frame/frame.rc.build @@ -0,0 +1,21 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + frbox.c \ + frdraw.c \ + frdelete.c \ + frinit.c \ + frinsert.c \ + frptofchar.c \ + frselect.c \ + frstr.c \ + frutil.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libframe.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libframe.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libframe.a +rm *.o diff --git a/sys/src/lib/ip/build.json b/sys/src/lib/ip/build.json deleted file mode 100644 index 916e284..0000000 --- a/sys/src/lib/ip/build.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "Libip": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libip.a", - "SourceFiles": [ - "eipfmt.c", - "equivip.c", - "parseip.c", - "parseether.c", - "myetheraddr.c", - "myipaddr.c", - "classmask.c", - "bo.c", - "readipifc.c", - "ipaux.c", - "ptclbsum.c" - ] - } -} diff --git a/sys/src/lib/ip/ip.rc.build b/sys/src/lib/ip/ip.rc.build new file mode 100644 index 0000000..f868e63 --- /dev/null +++ b/sys/src/lib/ip/ip.rc.build @@ -0,0 +1,23 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + eipfmt.c \ + equivip.c \ + parseip.c \ + parseether.c \ + myetheraddr.c \ + myipaddr.c \ + classmask.c \ + bo.c \ + readipifc.c \ + ipaux.c \ + ptclbsum.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libip.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libip.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libip.a +rm *.o diff --git a/sys/src/lib/ip/klibip.json b/sys/src/lib/ip/klibip.json deleted file mode 100644 index 1409271..0000000 --- a/sys/src/lib/ip/klibip.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "KernelLibip": { - "Include": [ - "../klib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "klibip.a", - "SourceFiles": [ - "eipfmt.c", - "equivip.c", - "parseip.c", - "parseether.c", - "myipaddr.c", - "classmask.c", - "bo.c", - "ipaux.c", - "ptclbsum.c" - ] - } -} diff --git a/sys/src/lib/ip/klibip.rc.build b/sys/src/lib/ip/klibip.rc.build new file mode 100644 index 0000000..22da906 --- /dev/null +++ b/sys/src/lib/ip/klibip.rc.build @@ -0,0 +1,19 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + eipfmt.c \ + equivip.c \ + parseip.c \ + parseether.c \ + myipaddr.c \ + classmask.c \ + bo.c \ + ipaux.c \ + ptclbsum.c \ + $KLIB_CFLAGS +prependLibraryName klibip.a +$AR -rs $JEHANNE/arch/$ARCH/lib/klibip.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/klibip.a +rm *.o diff --git a/sys/src/lib/ip/libip.json b/sys/src/lib/ip/libip.json deleted file mode 100644 index 916e284..0000000 --- a/sys/src/lib/ip/libip.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "Libip": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libip.a", - "SourceFiles": [ - "eipfmt.c", - "equivip.c", - "parseip.c", - "parseether.c", - "myetheraddr.c", - "myipaddr.c", - "classmask.c", - "bo.c", - "readipifc.c", - "ipaux.c", - "ptclbsum.c" - ] - } -} diff --git a/sys/src/lib/jehanne/CrtFiles.rc.build b/sys/src/lib/jehanne/CrtFiles.rc.build new file mode 100644 index 0000000..ed98653 --- /dev/null +++ b/sys/src/lib/jehanne/CrtFiles.rc.build @@ -0,0 +1,14 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + amd64/crt0.s \ + amd64/crti.s \ + amd64/crtn.s \ + -fasm \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +cp *.o $JEHANNE/arch/$ARCH/lib/ +rm *.o diff --git a/sys/src/lib/jehanne/build.json b/sys/src/lib/jehanne/build.json deleted file mode 100644 index b1b9b03..0000000 --- a/sys/src/lib/jehanne/build.json +++ /dev/null @@ -1,245 +0,0 @@ -{ - "CrtFiles": { - "Cflags": [ - "-fasm" - ], - "Include": [ - "../lib.json" - ], - "Post": [ - "cp crt0.o crti.o crtn.o $JEHANNE/arch/$ARCH/lib/" - ], - "SourceFiles": [ - "$ARCH/crt0.s", - "$ARCH/crti.s", - "$ARCH/crtn.s" - ] - }, - "LibJehanne": { - "Cflags": [ - "-fasm" - ], - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libjehanne.a", - "Pre": [ - "usyscalls header $JEHANNE/sys/src/sysconf.json > $JEHANNE/arch/amd64/include/syscalls.h", - "usyscalls code $JEHANNE/sys/src/sysconf.json > $JEHANNE/sys/src/lib/jehanne/amd64/syscalls.c" - ], - "Post": [ - "TOOL=ar; $TOOLPREFIX$TOOL rcs $JEHANNE/arch/$ARCH/lib/libssp.a", - "TOOL=ar; $TOOLPREFIX$TOOL rcs $JEHANNE/arch/$ARCH/lib/libssp_nonshared.a" - ], - "SourceFiles": [ - "9sys/access.c", - "9sys/announce.c", - "9sys/awakened.c", - "9sys/chdir.c", - "9sys/convD2M.c", - "9sys/convM2D.c", - "9sys/cputime.c", - "9sys/ctime.c", - "9sys/dial.c", - "9sys/dirfstat.c", - "9sys/dirfwstat.c", - "9sys/dirmodefmt.c", - "9sys/dirread.c", - "9sys/dirstat.c", - "9sys/dirwstat.c", - "9sys/dup.c", - "9sys/fork.c", - "9sys/getnetconninfo.c", - "9sys/getenv.c", - "9sys/getmainpid.c", - "9sys/getpid.c", - "9sys/getppid.c", - "9sys/getwd.c", - "9sys/iounit.c", - "9sys/nsec.c", - "9sys/nulldir.c", - "9sys/ocreate.c", - "9sys/pexec.c", - "9sys/pipe.c", - "9sys/postnote.c", - "9sys/privalloc.c", - "9sys/pushssl.c", - "9sys/putenv.c", - "9sys/qlock.c", - "9sys/read.c", - "9sys/rerrstr.c", - "9sys/segbrk.c", - "9sys/segattach.c", - "9sys/setnetmtpt.c", - "9sys/sleep.c", - "9sys/stat.c", - "9sys/sysfatal.c", - "9sys/syslog.c", - "9sys/sysname.c", - "9sys/time.c", - "9sys/times.c", - "9sys/tm2sec.c", - "9sys/truerand.c", - "9sys/tsemacquire.c", - "9sys/wait.c", - "9sys/waitpid.c", - "9sys/werrstr.c", - "9sys/write.c", - "apw/abort.c", - "apw/div.c", - "apw/eprintf.c", - "apw/exit.c", - "apw/system.c", - "fmt/dofmt.c", - "fmt/dorfmt.c", - "fmt/errfmt.c", - "fmt/fltfmt.c", - "fmt/fmt.c", - "fmt/fmtfd.c", - "fmt/fmtlock.c", - "fmt/fmtprint.c", - "fmt/fmtquote.c", - "fmt/fmtrune.c", - "fmt/fmtstr.c", - "fmt/fmtvprint.c", - "fmt/fprint.c", - "fmt/print.c", - "fmt/runefmtstr.c", - "fmt/runeseprint.c", - "fmt/runesmprint.c", - "fmt/runesnprint.c", - "fmt/runesprint.c", - "fmt/runevseprint.c", - "fmt/runevsmprint.c", - "fmt/runevsnprint.c", - "fmt/seprint.c", - "fmt/smprint.c", - "fmt/snprint.c", - "fmt/sprint.c", - "fmt/vfprint.c", - "fmt/vseprint.c", - "fmt/vsmprint.c", - "fmt/vsnprint.c", - "port/_assert.c", - "port/abs.c", - "port/asin.c", - "port/atan.c", - "port/atan2.c", - "port/atexit.c", - "port/atnotify.c", - "port/atof.c", - "port/atol.c", - "port/atoll.c", - "port/bsearch.c", - "port/cistrcmp.c", - "port/cistrncmp.c", - "port/cistrstr.c", - "port/charstod.c", - "port/cleanname.c", - "port/ctype.c", - "port/encodefmt.c", - "port/execl.c", - "port/exits.c", - "port/exp.c", - "port/fabs.c", - "port/floor.c", - "port/fmod.c", - "port/frand.c", - "port/frexp.c", - "port/getfields.c", - "port/getuser.c", - "port/hangup.c", - "port/hypot.c", - "port/lnrand.c", - "port/lock.c", - "port/log.c", - "port/lrand.c", - "port/malloc.c", - "port/memccpy.c", - "port/memchr.c", - "port/memcmp.c", - "port/memmove.c", - "port/memset.c", - "port/mktemp.c", - "port/muldiv.c", - "port/nan.c", - "port/needsrcquote.c", - "port/netmkaddr.c", - "port/nrand.c", - "port/ntruerand.c", - "port/perror.c", - "port/pool.c", - "port/pow.c", - "port/pow10.c", - "port/qsort.c", - "port/quote.c", - "port/rand.c", - "port/readn.c", - "port/rune.c", - "port/runebase.c", - "port/runebsearch.c", - "port/runestrcat.c", - "port/runestrchr.c", - "port/runestrcmp.c", - "port/runestrcpy.c", - "port/runestrecpy.c", - "port/runestrdup.c", - "port/runestrncat.c", - "port/runestrncmp.c", - "port/runestrncpy.c", - "port/runestrrchr.c", - "port/runestrlen.c", - "port/runestrstr.c", - "port/runetype.c", - "port/sin.c", - "port/sinh.c", - "port/strcat.c", - "port/strchr.c", - "port/strcmp.c", - "port/strcpy.c", - "port/strecpy.c", - "port/strcspn.c", - "port/strdup.c", - "port/strlen.c", - "port/strncat.c", - "port/strncmp.c", - "port/strncpy.c", - "port/strpbrk.c", - "port/strrchr.c", - "port/strspn.c", - "port/strstr.c", - "port/strtod.c", - "port/strtok.c", - "port/strtol.c", - "port/strtoll.c", - "port/strtoul.c", - "port/strtoull.c", - "port/tan.c", - "port/tanh.c", - "port/tokenize.c", - "port/toupper.c", - "port/utfecpy.c", - "port/utflen.c", - "port/utfnlen.c", - "port/utfrune.c", - "port/utfrrune.c", - "port/utfutf.c", - "port/u16.c", - "port/u32.c", - "port/u64.c", - "$ARCH/initlib.c", - "$ARCH/syscalls.c", - "$ARCH/notejmp.c", - "$ARCH/cycles.c", - "$ARCH/argv0.c", - "$ARCH/rdpmc.c", - "$ARCH/setjmp.s", - "$ARCH/stackchk.c", - "$ARCH/getfcr.s", - "$ARCH/sqrt.s", - "$ARCH/tas.s", - "$ARCH/atom.s" - ] - } -} diff --git a/sys/src/lib/jehanne/jehanne.rc.build b/sys/src/lib/jehanne/jehanne.rc.build new file mode 100644 index 0000000..faa3c50 --- /dev/null +++ b/sys/src/lib/jehanne/jehanne.rc.build @@ -0,0 +1,226 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +build CrtFiles.rc.build + +cat syscallh.rc.template | template | rc | sed 's/ ,/,/g; s/ )/)/g' > $JEHANNE/arch/$ARCH/include/syscalls.h +cat syscallc.rc.template | template | rc | sed 's/ ,/,/g; s/ )/)/g' > $JEHANNE/sys/src/lib/jehanne/$ARCH/syscalls.c +rm -f *.o *.tag.* +$CC \ + 9sys/access.c \ + 9sys/announce.c \ + 9sys/awakened.c \ + 9sys/chdir.c \ + 9sys/convD2M.c \ + 9sys/convM2D.c \ + 9sys/cputime.c \ + 9sys/ctime.c \ + 9sys/dial.c \ + 9sys/dirfstat.c \ + 9sys/dirfwstat.c \ + 9sys/dirmodefmt.c \ + 9sys/dirread.c \ + 9sys/dirstat.c \ + 9sys/dirwstat.c \ + 9sys/dup.c \ + 9sys/fork.c \ + 9sys/getnetconninfo.c \ + 9sys/getenv.c \ + 9sys/getmainpid.c \ + 9sys/getpid.c \ + 9sys/getppid.c \ + 9sys/getwd.c \ + 9sys/iounit.c \ + 9sys/nsec.c \ + 9sys/nulldir.c \ + 9sys/ocreate.c \ + 9sys/pexec.c \ + 9sys/pipe.c \ + 9sys/postnote.c \ + 9sys/privalloc.c \ + 9sys/pushssl.c \ + 9sys/putenv.c \ + 9sys/qlock.c \ + 9sys/read.c \ + 9sys/rerrstr.c \ + 9sys/segbrk.c \ + 9sys/segattach.c \ + 9sys/setnetmtpt.c \ + 9sys/sleep.c \ + 9sys/stat.c \ + 9sys/sysfatal.c \ + 9sys/syslog.c \ + 9sys/sysname.c \ + 9sys/time.c \ + 9sys/times.c \ + 9sys/tm2sec.c \ + 9sys/truerand.c \ + 9sys/tsemacquire.c \ + 9sys/wait.c \ + 9sys/waitpid.c \ + 9sys/werrstr.c \ + 9sys/write.c \ + apw/abort.c \ + apw/div.c \ + apw/eprintf.c \ + apw/exit.c \ + apw/system.c \ + fmt/dofmt.c \ + fmt/dorfmt.c \ + fmt/errfmt.c \ + fmt/fltfmt.c \ + fmt/fmt.c \ + fmt/fmtfd.c \ + fmt/fmtlock.c \ + fmt/fmtprint.c \ + fmt/fmtquote.c \ + fmt/fmtrune.c \ + fmt/fmtstr.c \ + fmt/fmtvprint.c \ + fmt/fprint.c \ + fmt/print.c \ + fmt/runefmtstr.c \ + fmt/runeseprint.c \ + fmt/runesmprint.c \ + fmt/runesnprint.c \ + fmt/runesprint.c \ + fmt/runevseprint.c \ + fmt/runevsmprint.c \ + fmt/runevsnprint.c \ + fmt/seprint.c \ + fmt/smprint.c \ + fmt/snprint.c \ + fmt/sprint.c \ + fmt/vfprint.c \ + fmt/vseprint.c \ + fmt/vsmprint.c \ + fmt/vsnprint.c \ + port/_assert.c \ + port/abs.c \ + port/asin.c \ + port/atan.c \ + port/atan2.c \ + port/atexit.c \ + port/atnotify.c \ + port/atof.c \ + port/atol.c \ + port/atoll.c \ + port/bsearch.c \ + port/cistrcmp.c \ + port/cistrncmp.c \ + port/cistrstr.c \ + port/charstod.c \ + port/cleanname.c \ + port/ctype.c \ + port/encodefmt.c \ + port/execl.c \ + port/exits.c \ + port/exp.c \ + port/fabs.c \ + port/floor.c \ + port/fmod.c \ + port/frand.c \ + port/frexp.c \ + port/getfields.c \ + port/getuser.c \ + port/hangup.c \ + port/hypot.c \ + port/lnrand.c \ + port/lock.c \ + port/log.c \ + port/lrand.c \ + port/malloc.c \ + port/memccpy.c \ + port/memchr.c \ + port/memcmp.c \ + port/memmove.c \ + port/memset.c \ + port/mktemp.c \ + port/muldiv.c \ + port/nan.c \ + port/needsrcquote.c \ + port/netmkaddr.c \ + port/nrand.c \ + port/ntruerand.c \ + port/perror.c \ + port/pool.c \ + port/pow.c \ + port/pow10.c \ + port/qsort.c \ + port/quote.c \ + port/rand.c \ + port/readn.c \ + port/rune.c \ + port/runebase.c \ + port/runebsearch.c \ + port/runestrcat.c \ + port/runestrchr.c \ + port/runestrcmp.c \ + port/runestrcpy.c \ + port/runestrecpy.c \ + port/runestrdup.c \ + port/runestrncat.c \ + port/runestrncmp.c \ + port/runestrncpy.c \ + port/runestrrchr.c \ + port/runestrlen.c \ + port/runestrstr.c \ + port/runetype.c \ + port/sin.c \ + port/sinh.c \ + port/strcat.c \ + port/strchr.c \ + port/strcmp.c \ + port/strcpy.c \ + port/strecpy.c \ + port/strcspn.c \ + port/strdup.c \ + port/strlen.c \ + port/strncat.c \ + port/strncmp.c \ + port/strncpy.c \ + port/strpbrk.c \ + port/strrchr.c \ + port/strspn.c \ + port/strstr.c \ + port/strtod.c \ + port/strtok.c \ + port/strtol.c \ + port/strtoll.c \ + port/strtoul.c \ + port/strtoull.c \ + port/tan.c \ + port/tanh.c \ + port/tokenize.c \ + port/toupper.c \ + port/utfecpy.c \ + port/utflen.c \ + port/utfnlen.c \ + port/utfrune.c \ + port/utfrrune.c \ + port/utfutf.c \ + port/u16.c \ + port/u32.c \ + port/u64.c \ + amd64/initlib.c \ + amd64/syscalls.c \ + amd64/notejmp.c \ + amd64/cycles.c \ + amd64/argv0.c \ + amd64/rdpmc.c \ + amd64/setjmp.s \ + amd64/stackchk.c \ + amd64/getfcr.s \ + amd64/sqrt.s \ + amd64/tas.s \ + amd64/atom.s \ + -fasm \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libjehanne.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libjehanne.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libjehanne.a +$AR rcs $JEHANNE/arch/$ARCH/lib/libssp.a +$AR rcs $JEHANNE/arch/$ARCH/lib/libssp_nonshared.a +rm *.o diff --git a/sys/src/lib/jehanne/klibc.json b/sys/src/lib/jehanne/klibc.json deleted file mode 100644 index 9c05fe2..0000000 --- a/sys/src/lib/jehanne/klibc.json +++ /dev/null @@ -1,150 +0,0 @@ -{ - "KernelLibc": { - "Cflags": [ - "-DKERNEL", - "-fasm" - ], - "Include": [ - "../klib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "klibc.a", - "Pre": [ - "usyscalls header $JEHANNE/sys/src/sysconf.json > $JEHANNE/arch/amd64/include/syscalls.h", - "usyscalls code $JEHANNE/sys/src/sysconf.json > $JEHANNE/sys/src/lib/jehanne/amd64/syscalls.c" - ], - "SourceFiles": [ - "9sys/convD2M.c", - "9sys/convM2D.c", - "fmt/dofmt.c", - "fmt/dorfmt.c", - "fmt/errfmt.c", - "fmt/fltfmt.c", - "fmt/fmt.c", - "fmt/fmtfd.c", - "fmt/fmtlock.c", - "fmt/fmtprint.c", - "fmt/fmtquote.c", - "fmt/fmtrune.c", - "fmt/fmtstr.c", - "fmt/fmtvprint.c", - "fmt/runefmtstr.c", - "fmt/runeseprint.c", - "fmt/runesmprint.c", - "fmt/runesnprint.c", - "fmt/runesprint.c", - "fmt/runevseprint.c", - "fmt/runevsmprint.c", - "fmt/runevsnprint.c", - "fmt/seprint.c", - "fmt/smprint.c", - "fmt/snprint.c", - "fmt/sprint.c", - "fmt/vseprint.c", - "fmt/vsmprint.c", - "fmt/vsnprint.c", - "port/_assert.c", - "port/abs.c", - "port/asin.c", - "port/atan.c", - "port/atan2.c", - "port/atof.c", - "port/atol.c", - "port/atoll.c", - "port/cistrcmp.c", - "port/cistrncmp.c", - "port/cistrstr.c", - "port/charstod.c", - "port/cleanname.c", - "port/ctype.c", - "port/encodefmt.c", - "port/exp.c", - "port/fabs.c", - "port/floor.c", - "port/fmod.c", - "port/frand.c", - "port/frexp.c", - "port/getfields.c", - "port/hypot.c", - "port/lnrand.c", - "port/log.c", - "port/lrand.c", - "port/memccpy.c", - "port/memchr.c", - "port/memcmp.c", - "port/memmove.c", - "port/memset.c", - "port/muldiv.c", - "port/nan.c", - "port/needsrcquote.c", - "port/netmkaddr.c", - "port/nrand.c", - "port/ntruerand.c", - "port/pool.c", - "port/pow.c", - "port/pow10.c", - "port/qsort.c", - "port/quote.c", - "port/rand.c", - "port/rune.c", - "port/runebase.c", - "port/runebsearch.c", - "port/runestrcat.c", - "port/runestrchr.c", - "port/runestrcmp.c", - "port/runestrcpy.c", - "port/runestrecpy.c", - "port/runestrdup.c", - "port/runestrncat.c", - "port/runestrncmp.c", - "port/runestrncpy.c", - "port/runestrrchr.c", - "port/runestrlen.c", - "port/runestrstr.c", - "port/runetype.c", - "port/sin.c", - "port/sinh.c", - "port/strcat.c", - "port/strchr.c", - "port/strcmp.c", - "port/strcpy.c", - "port/strecpy.c", - "port/strcspn.c", - "port/strdup.c", - "port/strlen.c", - "port/strncat.c", - "port/strncmp.c", - "port/strncpy.c", - "port/strpbrk.c", - "port/strrchr.c", - "port/strspn.c", - "port/strstr.c", - "port/strtod.c", - "port/strtok.c", - "port/strtol.c", - "port/strtoll.c", - "port/strtoul.c", - "port/strtoull.c", - "port/tan.c", - "port/tanh.c", - "port/tokenize.c", - "port/toupper.c", - "port/utfecpy.c", - "port/utflen.c", - "port/utfnlen.c", - "port/utfrune.c", - "port/utfrrune.c", - "port/utfutf.c", - "port/u16.c", - "port/u32.c", - "port/u64.c", - "$ARCH/argv0.c", - "$ARCH/cycles.c", - "$ARCH/rdpmc.c", - "$ARCH/setjmp.s", - "$ARCH/sqrt.s", - "$ARCH/stackchk.c", - "$ARCH/tas.s" - ] - } -} diff --git a/sys/src/lib/jehanne/klibc.rc.build b/sys/src/lib/jehanne/klibc.rc.build new file mode 100644 index 0000000..5d0db2e --- /dev/null +++ b/sys/src/lib/jehanne/klibc.rc.build @@ -0,0 +1,145 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +cat syscallh.rc.template | template | rc | sed 's/ ,/,/g; s/ )/)/g' > $JEHANNE/arch/$ARCH/include/syscalls.h +cat syscallc.rc.template | template | rc | sed 's/ ,/,/g; s/ )/)/g' > $JEHANNE/sys/src/lib/jehanne/$ARCH/syscalls.c +rm -f *.o *.tag.* + + +$CC \ + 9sys/convD2M.c \ + 9sys/convM2D.c \ + fmt/dofmt.c \ + fmt/dorfmt.c \ + fmt/errfmt.c \ + fmt/fltfmt.c \ + fmt/fmt.c \ + fmt/fmtfd.c \ + fmt/fmtlock.c \ + fmt/fmtprint.c \ + fmt/fmtquote.c \ + fmt/fmtrune.c \ + fmt/fmtstr.c \ + fmt/fmtvprint.c \ + fmt/runefmtstr.c \ + fmt/runeseprint.c \ + fmt/runesmprint.c \ + fmt/runesnprint.c \ + fmt/runesprint.c \ + fmt/runevseprint.c \ + fmt/runevsmprint.c \ + fmt/runevsnprint.c \ + fmt/seprint.c \ + fmt/smprint.c \ + fmt/snprint.c \ + fmt/sprint.c \ + fmt/vseprint.c \ + fmt/vsmprint.c \ + fmt/vsnprint.c \ + port/_assert.c \ + port/abs.c \ + port/asin.c \ + port/atan.c \ + port/atan2.c \ + port/atof.c \ + port/atol.c \ + port/atoll.c \ + port/cistrcmp.c \ + port/cistrncmp.c \ + port/cistrstr.c \ + port/charstod.c \ + port/cleanname.c \ + port/ctype.c \ + port/encodefmt.c \ + port/exp.c \ + port/fabs.c \ + port/floor.c \ + port/fmod.c \ + port/frand.c \ + port/frexp.c \ + port/getfields.c \ + port/hypot.c \ + port/lnrand.c \ + port/log.c \ + port/lrand.c \ + port/memccpy.c \ + port/memchr.c \ + port/memcmp.c \ + port/memmove.c \ + port/memset.c \ + port/muldiv.c \ + port/nan.c \ + port/needsrcquote.c \ + port/netmkaddr.c \ + port/nrand.c \ + port/ntruerand.c \ + port/pool.c \ + port/pow.c \ + port/pow10.c \ + port/qsort.c \ + port/quote.c \ + port/rand.c \ + port/rune.c \ + port/runebase.c \ + port/runebsearch.c \ + port/runestrcat.c \ + port/runestrchr.c \ + port/runestrcmp.c \ + port/runestrcpy.c \ + port/runestrecpy.c \ + port/runestrdup.c \ + port/runestrncat.c \ + port/runestrncmp.c \ + port/runestrncpy.c \ + port/runestrrchr.c \ + port/runestrlen.c \ + port/runestrstr.c \ + port/runetype.c \ + port/sin.c \ + port/sinh.c \ + port/strcat.c \ + port/strchr.c \ + port/strcmp.c \ + port/strcpy.c \ + port/strecpy.c \ + port/strcspn.c \ + port/strdup.c \ + port/strlen.c \ + port/strncat.c \ + port/strncmp.c \ + port/strncpy.c \ + port/strpbrk.c \ + port/strrchr.c \ + port/strspn.c \ + port/strstr.c \ + port/strtod.c \ + port/strtok.c \ + port/strtol.c \ + port/strtoll.c \ + port/strtoul.c \ + port/strtoull.c \ + port/tan.c \ + port/tanh.c \ + port/tokenize.c \ + port/toupper.c \ + port/utfecpy.c \ + port/utflen.c \ + port/utfnlen.c \ + port/utfrune.c \ + port/utfrrune.c \ + port/utfutf.c \ + port/u16.c \ + port/u32.c \ + port/u64.c \ + $ARCH/argv0.c \ + $ARCH/cycles.c \ + $ARCH/rdpmc.c \ + $ARCH/setjmp.s \ + $ARCH/sqrt.s \ + $ARCH/stackchk.c \ + $ARCH/tas.s \ + $KLIB_CFLAGS +prependLibraryName klibc.a +$AR -rs $JEHANNE/arch/$ARCH/lib/klibc.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/klibc.a +rm *.o diff --git a/sys/src/lib/jehanne/syscallc.rc.template b/sys/src/lib/jehanne/syscallc.rc.template new file mode 100644 index 0000000..a3d8eca --- /dev/null +++ b/sys/src/lib/jehanne/syscallc.rc.template @@ -0,0 +1,60 @@ +/* + * This file is part of Jehanne. + * + * Copyright (C) 2022 Giacomo Tesio + * + * Jehanne is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License. + * + * Jehanne is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jehanne. If not, see . + */ +/* automatically generated by syscallc.rc.template */ + +#define PORTABLE_SYSCALLS +#include + +#! fn setClobbers { +#! if( ! ~ $"CLOBBERS *"memory" && ~ $1 *'*' && ! ~ $1 const*) { +#! CLOBBERS=$CLOBBERS', "memory"' +#! } +#! } +#! ifs=' +#! ' +#! CONFIGURATION=`{sed -n '/^$/!{/^#/!p}' $JEHANNE/sys/src/sysconf/syscalls.rc.confs} +#! for (line in $CONFIGURATION){ +#! eval $line +#! ID='$'$ID +#! CLOBBERS='"cc", "rcx", "r11"' +#! CALLARGS=$ARGS(1)^' a1' +#! setClobbers $ARGS(1) +#! if( ! ~ 1 $#ARGS){ +#! for(idx in `{seq 2 $#ARGS}){ +#! CALLARGS=$CALLARGS^', '^$ARGS($idx)^' a'^$idx +#! setClobbers $ARGS($idx) +#! } +#! } + +#pragma weak sys_$NAME +$RET +sys_$NAME^($CALLARGS) +{ + register $RET __ret asm ("rax"); + __asm__ __volatile__ ( + "movq %%rcx, %%r10" "\n\t" + "movq $ID, %%rax" "\n\t" + "syscall" + : "=r" (__ret) + : /* args are ready */ + : $CLOBBERS + ); + return __ret; +} + +#! } diff --git a/sys/src/lib/jehanne/syscallh.rc.template b/sys/src/lib/jehanne/syscallh.rc.template new file mode 100644 index 0000000..9a3f726 --- /dev/null +++ b/sys/src/lib/jehanne/syscallh.rc.template @@ -0,0 +1,51 @@ +/* + * This file is part of Jehanne. + * + * Copyright (C) 2022 Giacomo Tesio + * + * Jehanne is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, version 3 of the License. + * + * Jehanne is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jehanne. If not, see . + */ +/* automatically generated by syscallh.rc.template */ + +#! fn toPascalCase { +#! sed 's/^\(.\)\(.\+\)/echo -n \1 | tr a-z A-Z; echo \2/g' | rc +#! } + +typedef enum Syscalls +{ +#! ifs=' +#! ' +#! CONFIGURATION=`{sed -n '/^$/!{/^#/!p}' $JEHANNE/sys/src/sysconf/syscalls.rc.confs} +#! for (line in $CONFIGURATION){ +#! eval $line +#! ENUM_NAME=Sys`{echo $NAME|toPascalCase} + $ENUM_NAME = $ID, +#! } +} Syscalls; + +#ifndef KERNEL + +#! . $JEHANNE/sys/src/kern/$ARCH/registry-$ARCH.rc.conf +#! ifs=' +#! ' +#! CONFIGURATION=`{sed -n '/^$/!{/^#/!p}' $JEHANNE/sys/src/sysconf/syscalls.rc.confs} +#! for (line in $CONFIGURATION){ +#! eval $line +#! OTHERARGS=() +#! if( ! ~ 1 $#ARGS){ +#! OTHERARGS=(', '^$ARGS(2-)) +#! } +extern $RET sys_$NAME($ARGS(1) $"OTHERARGS); +#! } + +#endif diff --git a/sys/src/lib/klib.json b/sys/src/lib/klib.json deleted file mode 100644 index 61686e9..0000000 --- a/sys/src/lib/klib.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "KernelLibs": { - "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" - ], - "Oflags": [ - "-static" - ], - "Post": [ - "rm *.o" - ], - "Pre": [ - "rm -f *.o *.tag.*" - ] - } -} diff --git a/sys/src/lib/klibs.json b/sys/src/lib/klibs.json deleted file mode 100644 index b6cf29a..0000000 --- a/sys/src/lib/klibs.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "klibs": { - "Projects": [ - "/sys/src/lib/jehanne/klibc.json", - "/sys/src/lib/9p2000/klib9p2000.json", - "/sys/src/lib/ip/klibip.json", - "/sys/src/lib/draw/klibdraw.json", - "/sys/src/lib/memdraw/klibmemdraw.json", - "/sys/src/lib/memlayer/klibmemlayer.json", - "/sys/src/lib/mp/klibmp.json", - "/sys/src/lib/sec/klibsec.json", - "/sys/src/lib/aml/klibaml.json" - ] - } -} diff --git a/sys/src/lib/klibs.rc.build b/sys/src/lib/klibs.rc.build new file mode 100644 index 0000000..8337ccf --- /dev/null +++ b/sys/src/lib/klibs.rc.build @@ -0,0 +1,13 @@ +#!/cmd/rc + +mkdir -p $JEHANNE/arch/$ARCH/lib + +build jehanne/klibc.rc.build +build 9p2000/klib9p2000.rc.build +build ip/klibip.rc.build +build draw/klibdraw.rc.build +build memdraw/klibmemdraw.rc.build +build memlayer/klibmemlayer.rc.build +build mp/klibmp.rc.build +build sec/klibsec.rc.build +build aml/klibaml.rc.build diff --git a/sys/src/lib/lib.json b/sys/src/lib/lib.json deleted file mode 100644 index 562adc0..0000000 --- a/sys/src/lib/lib.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "Libs": { - "Include": [ - "/arch/$ARCH/include/cflags.json" - ], - "Cflags": [ - "-fstack-check", - "-fstack-protector-all", - "-c" - ], - "Oflags": [ - "-static" - ], - "Post": [ - "rm *.o" - ], - "Pre": [ - "rm -f *.o *.tag.*" - ] - } -} diff --git a/sys/src/lib/libs.json b/sys/src/lib/libs.json deleted file mode 100644 index d6e4f16..0000000 --- a/sys/src/lib/libs.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "libs.json": { - "Projects": [ - "/sys/src/lib/jehanne/", - "/sys/src/lib/9p2000", - "/sys/src/lib/ip/", - "/sys/src/lib/draw/", - "/sys/src/lib/9p/", - "/sys/src/lib/String/", - "/sys/src/lib/aml/", - "/sys/src/lib/auth/", - "/sys/src/lib/authsrv/", - "/sys/src/lib/avl/", - "/sys/src/lib/bio/", - "/sys/src/lib/complete/", - "/sys/src/lib/control/", - "/sys/src/lib/disk/", - "/sys/src/lib/flate/", - "/sys/src/lib/frame/", - "/sys/src/lib/memdraw/", - "/sys/src/lib/memlayer/", - "/sys/src/lib/mp/", - "/sys/src/lib/ndb/", - "/sys/src/lib/plumb/", - "/sys/src/lib/regexp/", - "/sys/src/lib/sec/", - "/sys/src/lib/thread/", - "/sys/src/lib/posix/" - ] - } -} diff --git a/sys/src/lib/libs.rc.build b/sys/src/lib/libs.rc.build new file mode 100644 index 0000000..384d45b --- /dev/null +++ b/sys/src/lib/libs.rc.build @@ -0,0 +1,29 @@ +#!/cmd/rc + +mkdir -p $JEHANNE/arch/$ARCH/lib + +build jehanne/ +build 9p2000 +build ip/ +build draw/ +build 9p/ +build String/ +build aml/ +build auth/ +build authsrv/ +build avl/ +build bio/ +build complete/ +build control/ +build disk/ +build flate/ +build frame/ +build memdraw/ +build memlayer/ +build mp/ +build ndb/ +build plumb/ +build regexp/ +build sec/ +build thread/ +build posix/ diff --git a/sys/src/lib/memdraw/build.json b/sys/src/lib/memdraw/build.json deleted file mode 100644 index 170f138..0000000 --- a/sys/src/lib/memdraw/build.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "libmemdraw": { - "Include": [ - "../lib.json" - ], - "Cflags": [ - "-fno-strict-aliasing" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libmemdraw.a", - "SourceFiles": [ - "alloc.c", - "arc.c", - "cload.c", - "cmap.c", - "cread.c", - "defont.c", - "draw.c", - "ellipse.c", - "fillpoly.c", - "hwdraw.c", - "iprint.c", - "line.c", - "load.c", - "openmemsubfont.c", - "poly.c", - "read.c", - "string.c", - "subfont.c", - "unload.c", - "write.c" - ] - } -} diff --git a/sys/src/lib/memdraw/klibmemdraw.json b/sys/src/lib/memdraw/klibmemdraw.json deleted file mode 100644 index 3346bfd..0000000 --- a/sys/src/lib/memdraw/klibmemdraw.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "KernelLibmemdraw": { - "Include": [ - "../klib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "klibmemdraw.a", - "SourceFiles": [ - "alloc.c", - "arc.c", - "cload.c", - "cmap.c", - "cread.c", - "defont.c", - "draw.c", - "ellipse.c", - "fillpoly.c", - "hwdraw.c", - "iprint.c", - "line.c", - "load.c", - "poly.c", - "read.c", - "string.c", - "subfont.c", - "unload.c" - ] - } -} diff --git a/sys/src/lib/memdraw/klibmemdraw.rc.build b/sys/src/lib/memdraw/klibmemdraw.rc.build new file mode 100644 index 0000000..bae3197 --- /dev/null +++ b/sys/src/lib/memdraw/klibmemdraw.rc.build @@ -0,0 +1,28 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + alloc.c \ + arc.c \ + cload.c \ + cmap.c \ + cread.c \ + defont.c \ + draw.c \ + ellipse.c \ + fillpoly.c \ + hwdraw.c \ + iprint.c \ + line.c \ + load.c \ + poly.c \ + read.c \ + string.c \ + subfont.c \ + unload.c \ + $KLIB_CFLAGS +prependLibraryName klibmemdraw.a +$AR -rs $JEHANNE/arch/$ARCH/lib/klibmemdraw.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/klibmemdraw.a +rm *.o diff --git a/sys/src/lib/memdraw/memdraw.rc.build b/sys/src/lib/memdraw/memdraw.rc.build new file mode 100644 index 0000000..54fef44 --- /dev/null +++ b/sys/src/lib/memdraw/memdraw.rc.build @@ -0,0 +1,33 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + alloc.c \ + arc.c \ + cload.c \ + cmap.c \ + cread.c \ + defont.c \ + draw.c \ + ellipse.c \ + fillpoly.c \ + hwdraw.c \ + iprint.c \ + line.c \ + load.c \ + openmemsubfont.c \ + poly.c \ + read.c \ + string.c \ + subfont.c \ + unload.c \ + write.c \ + -fno-strict-aliasing \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libmemdraw.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libmemdraw.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libmemdraw.a +rm *.o diff --git a/sys/src/lib/memlayer/build.json b/sys/src/lib/memlayer/build.json deleted file mode 100644 index 824bb7a..0000000 --- a/sys/src/lib/memlayer/build.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "libmemlayer": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libmemlayer.a", - "SourceFiles": [ - "draw.c", - "lalloc.c", - "layerop.c", - "ldelete.c", - "lhide.c", - "line.c", - "load.c", - "lorigin.c", - "lsetrefresh.c", - "ltofront.c", - "ltorear.c", - "unload.c" - ] - } -} diff --git a/sys/src/lib/memlayer/klibmemlayer.json b/sys/src/lib/memlayer/klibmemlayer.json deleted file mode 100644 index 03d08c0..0000000 --- a/sys/src/lib/memlayer/klibmemlayer.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "KernelLibmemlayer": { - "Include": [ - "../klib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "klibmemlayer.a", - "SourceFiles": [ - "draw.c", - "lalloc.c", - "layerop.c", - "ldelete.c", - "lhide.c", - "line.c", - "load.c", - "lorigin.c", - "lsetrefresh.c", - "ltofront.c", - "ltorear.c", - "unload.c" - ] - } -} diff --git a/sys/src/lib/memlayer/klibmemlayer.rc.build b/sys/src/lib/memlayer/klibmemlayer.rc.build new file mode 100644 index 0000000..da198ee --- /dev/null +++ b/sys/src/lib/memlayer/klibmemlayer.rc.build @@ -0,0 +1,22 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + draw.c \ + lalloc.c \ + layerop.c \ + ldelete.c \ + lhide.c \ + line.c \ + load.c \ + lorigin.c \ + lsetrefresh.c \ + ltofront.c \ + ltorear.c \ + unload.c \ + $KLIB_CFLAGS +prependLibraryName klibmemlayer.a +$AR -rs $JEHANNE/arch/$ARCH/lib/klibmemlayer.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/klibmemlayer.a +rm *.o diff --git a/sys/src/lib/memlayer/memlayer.rc.build b/sys/src/lib/memlayer/memlayer.rc.build new file mode 100644 index 0000000..c69b205 --- /dev/null +++ b/sys/src/lib/memlayer/memlayer.rc.build @@ -0,0 +1,24 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + draw.c \ + lalloc.c \ + layerop.c \ + ldelete.c \ + lhide.c \ + line.c \ + load.c \ + lorigin.c \ + lsetrefresh.c \ + ltofront.c \ + ltorear.c \ + unload.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libmemlayer.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libmemlayer.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libmemlayer.a +rm *.o diff --git a/sys/src/lib/mp/build.json b/sys/src/lib/mp/build.json deleted file mode 100644 index 0ef90aa..0000000 --- a/sys/src/lib/mp/build.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "libmp": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libmp.a", - "SourceFiles": [ - "port/betomp.c", - "port/cnfield.c", - "port/crt.c", - "port/gmfield.c", - "port/letomp.c", - "port/mpadd.c", - "port/mpaux.c", - "port/mpcmp.c", - "port/mpdigdiv.c", - "port/mpdiv.c", - "port/mpexp.c", - "port/mpextendedgcd.c", - "port/mpfactorial.c", - "port/mpfield.c", - "port/mpfmt.c", - "port/mpinvert.c", - "port/mpleft.c", - "port/mplogic.c", - "port/mpmod.c", - "port/mpmodop.c", - "port/mpmul.c", - "port/mpnrand.c", - "port/mprand.c", - "port/mpright.c", - "port/mpsel.c", - "port/mpsub.c", - "port/mptobe.c", - "port/mptober.c", - "port/mptoi.c", - "port/mptole.c", - "port/mptolel.c", - "port/mptoui.c", - "port/mptouv.c", - "port/mptov.c", - "port/mpvecadd.c", - "port/mpveccmp.c", - "port/mpvecdigmuladd.c", - "port/mpvecsub.c", - "port/mpvectscmp.c", - "port/strtomp.c" - ] - } -} diff --git a/sys/src/lib/mp/klibmp.json b/sys/src/lib/mp/klibmp.json deleted file mode 100644 index 79b5508..0000000 --- a/sys/src/lib/mp/klibmp.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "libmp": { - "Include": [ - "../klib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "klibmp.a", - "SourceFiles": [ - "port/betomp.c", - "port/cnfield.c", - "port/crt.c", - "port/gmfield.c", - "port/letomp.c", - "port/mpadd.c", - "port/mpaux.c", - "port/mpcmp.c", - "port/mpdigdiv.c", - "port/mpdiv.c", - "port/mpexp.c", - "port/mpextendedgcd.c", - "port/mpfactorial.c", - "port/mpfield.c", - "port/mpfmt.c", - "port/mpinvert.c", - "port/mpleft.c", - "port/mplogic.c", - "port/mpmod.c", - "port/mpmodop.c", - "port/mpmul.c", - "port/mpnrand.c", - "port/mprand.c", - "port/mpright.c", - "port/mpsel.c", - "port/mpsub.c", - "port/mptobe.c", - "port/mptober.c", - "port/mptoi.c", - "port/mptole.c", - "port/mptolel.c", - "port/mptoui.c", - "port/mptouv.c", - "port/mptov.c", - "port/mpvecadd.c", - "port/mpveccmp.c", - "port/mpvecdigmuladd.c", - "port/mpvecsub.c", - "port/mpvectscmp.c", - "port/strtomp.c" - ] - } -} diff --git a/sys/src/lib/mp/klibmp.rc.build b/sys/src/lib/mp/klibmp.rc.build new file mode 100644 index 0000000..ad44706 --- /dev/null +++ b/sys/src/lib/mp/klibmp.rc.build @@ -0,0 +1,50 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + port/betomp.c \ + port/cnfield.c \ + port/crt.c \ + port/gmfield.c \ + port/letomp.c \ + port/mpadd.c \ + port/mpaux.c \ + port/mpcmp.c \ + port/mpdigdiv.c \ + port/mpdiv.c \ + port/mpexp.c \ + port/mpextendedgcd.c \ + port/mpfactorial.c \ + port/mpfield.c \ + port/mpfmt.c \ + port/mpinvert.c \ + port/mpleft.c \ + port/mplogic.c \ + port/mpmod.c \ + port/mpmodop.c \ + port/mpmul.c \ + port/mpnrand.c \ + port/mprand.c \ + port/mpright.c \ + port/mpsel.c \ + port/mpsub.c \ + port/mptobe.c \ + port/mptober.c \ + port/mptoi.c \ + port/mptole.c \ + port/mptolel.c \ + port/mptoui.c \ + port/mptouv.c \ + port/mptov.c \ + port/mpvecadd.c \ + port/mpveccmp.c \ + port/mpvecdigmuladd.c \ + port/mpvecsub.c \ + port/mpvectscmp.c \ + port/strtomp.c \ + $KLIB_CFLAGS +prependLibraryName klibmp.a +$AR -rs $JEHANNE/arch/$ARCH/lib/klibmp.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/klibmp.a +rm *.o diff --git a/sys/src/lib/mp/mp.rc.build b/sys/src/lib/mp/mp.rc.build new file mode 100644 index 0000000..34fe088 --- /dev/null +++ b/sys/src/lib/mp/mp.rc.build @@ -0,0 +1,52 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + port/betomp.c \ + port/cnfield.c \ + port/crt.c \ + port/gmfield.c \ + port/letomp.c \ + port/mpadd.c \ + port/mpaux.c \ + port/mpcmp.c \ + port/mpdigdiv.c \ + port/mpdiv.c \ + port/mpexp.c \ + port/mpextendedgcd.c \ + port/mpfactorial.c \ + port/mpfield.c \ + port/mpfmt.c \ + port/mpinvert.c \ + port/mpleft.c \ + port/mplogic.c \ + port/mpmod.c \ + port/mpmodop.c \ + port/mpmul.c \ + port/mpnrand.c \ + port/mprand.c \ + port/mpright.c \ + port/mpsel.c \ + port/mpsub.c \ + port/mptobe.c \ + port/mptober.c \ + port/mptoi.c \ + port/mptole.c \ + port/mptolel.c \ + port/mptoui.c \ + port/mptouv.c \ + port/mptov.c \ + port/mpvecadd.c \ + port/mpveccmp.c \ + port/mpvecdigmuladd.c \ + port/mpvecsub.c \ + port/mpvectscmp.c \ + port/strtomp.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libmp.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libmp.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libmp.a +rm *.o diff --git a/sys/src/lib/ndb/build.json b/sys/src/lib/ndb/build.json deleted file mode 100644 index ab3ab13..0000000 --- a/sys/src/lib/ndb/build.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "libndb": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libndb.a", - "SourceFiles": [ - "csgetval.c", - "csipinfo.c", - "dnsquery.c", - "ipattr.c", - "ndbaux.c", - "ndbcache.c", - "ndbcat.c", - "ndbconcatenate.c", - "ndbdiscard.c", - "ndbfree.c", - "ndbgetipaddr.c", - "ndbgetval.c", - "ndbhash.c", - "ndbipinfo.c", - "ndblookval.c", - "ndbopen.c", - "ndbparse.c", - "ndbreorder.c", - "ndbsubstitute.c" - ] - } -} diff --git a/sys/src/lib/ndb/libndb.json b/sys/src/lib/ndb/libndb.json deleted file mode 100644 index ab3ab13..0000000 --- a/sys/src/lib/ndb/libndb.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "libndb": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libndb.a", - "SourceFiles": [ - "csgetval.c", - "csipinfo.c", - "dnsquery.c", - "ipattr.c", - "ndbaux.c", - "ndbcache.c", - "ndbcat.c", - "ndbconcatenate.c", - "ndbdiscard.c", - "ndbfree.c", - "ndbgetipaddr.c", - "ndbgetval.c", - "ndbhash.c", - "ndbipinfo.c", - "ndblookval.c", - "ndbopen.c", - "ndbparse.c", - "ndbreorder.c", - "ndbsubstitute.c" - ] - } -} diff --git a/sys/src/lib/ndb/ndb.rc.build b/sys/src/lib/ndb/ndb.rc.build new file mode 100644 index 0000000..a055cb0 --- /dev/null +++ b/sys/src/lib/ndb/ndb.rc.build @@ -0,0 +1,31 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + csgetval.c \ + csipinfo.c \ + dnsquery.c \ + ipattr.c \ + ndbaux.c \ + ndbcache.c \ + ndbcat.c \ + ndbconcatenate.c \ + ndbdiscard.c \ + ndbfree.c \ + ndbgetipaddr.c \ + ndbgetval.c \ + ndbhash.c \ + ndbipinfo.c \ + ndblookval.c \ + ndbopen.c \ + ndbparse.c \ + ndbreorder.c \ + ndbsubstitute.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libndb.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libndb.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libndb.a +rm *.o diff --git a/sys/src/lib/plumb/build.json b/sys/src/lib/plumb/build.json deleted file mode 100644 index 224733e..0000000 --- a/sys/src/lib/plumb/build.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "libplumb": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libplumb.a", - "SourceFiles": [ - "event.c", - "mesg.c", - "plumbsendtext.c" - ] - } -} diff --git a/sys/src/lib/plumb/plumb.rc.build b/sys/src/lib/plumb/plumb.rc.build new file mode 100644 index 0000000..826a44f --- /dev/null +++ b/sys/src/lib/plumb/plumb.rc.build @@ -0,0 +1,15 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + event.c \ + mesg.c \ + plumbsendtext.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libplumb.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libplumb.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libplumb.a +rm *.o diff --git a/sys/src/lib/posix/SignalHelper.rc.build b/sys/src/lib/posix/SignalHelper.rc.build new file mode 100644 index 0000000..bb54c38 --- /dev/null +++ b/sys/src/lib/posix/SignalHelper.rc.build @@ -0,0 +1,15 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.tag.* +$CC \ + posixly.c \ + -o posixly \ + $STACKCHECK_CFLAGS \ + $CFLAGS \ + -static \ + -lposix \ + -l9p2000 \ + -ljehanne +safemove posixly $JEHANNE/arch/$ARCH/cmd/sys +rm -f *.o diff --git a/sys/src/lib/posix/build.json b/sys/src/lib/posix/build.json deleted file mode 100644 index 3bb9c35..0000000 --- a/sys/src/lib/posix/build.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "LibPosix": { - "Cflags": [ - "-DPORTABLE_SYSCALLS", - "-DARCH=\"$ARCH\"", - "-fasm", - "-I." - ], - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libposix.a", - "SourceFiles": [ - "environment.c", - "errors.c", - "fcntl.c", - "files.c", - "ids.c", - "initlib.c", - "kill.c", - "links.c", - "memory.c", - "others.c", - "processes.c", - "sigchlds.c", - "signals.c", - "sigqueue.c", - "sigsets.c", - "sigsuspend.c", - "sysconf.c", - "termios.c", - "timers.c" - ] - }, - "SignalHelper": { - "Include": [ - "../../cmd/cmd.json" - ], - "Install": "/arch/$ARCH/cmd/sys/", - "Oflags": [ - "-static", - "-lposix", - "-l9p2000", - "-ljehanne" - ], - "SourceFilesCmd": [ - "posixly.c" - ] - } -} diff --git a/sys/src/lib/posix/posix.rc.build b/sys/src/lib/posix/posix.rc.build new file mode 100644 index 0000000..2f1b6eb --- /dev/null +++ b/sys/src/lib/posix/posix.rc.build @@ -0,0 +1,37 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + environment.c \ + errors.c \ + fcntl.c \ + files.c \ + ids.c \ + initlib.c \ + kill.c \ + links.c \ + memory.c \ + others.c \ + processes.c \ + sigchlds.c \ + signals.c \ + sigqueue.c \ + sigsets.c \ + sigsuspend.c \ + sysconf.c \ + termios.c \ + timers.c \ + -DPORTABLE_SYSCALLS \ + '-DARCH="amd64"' \ + -fasm \ + -I. \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libposix.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libposix.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libposix.a +rm *.o + +build SignalHelper.rc.build diff --git a/sys/src/lib/regexp/build.json b/sys/src/lib/regexp/build.json deleted file mode 100644 index 0fdb3a1..0000000 --- a/sys/src/lib/regexp/build.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "libregexp": { - "Include": [ - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libregexp.a", - "SourceFiles": [ - "regcomp.c", - "regerror.c", - "regexec.c", - "regsub.c", - "regaux.c", - "rregexec.c", - "rregsub.c" - ] - } -} diff --git a/sys/src/lib/regexp/regexp.rc.build b/sys/src/lib/regexp/regexp.rc.build new file mode 100644 index 0000000..289aa16 --- /dev/null +++ b/sys/src/lib/regexp/regexp.rc.build @@ -0,0 +1,19 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + regcomp.c \ + regerror.c \ + regexec.c \ + regsub.c \ + regaux.c \ + rregexec.c \ + rregsub.c \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libregexp.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libregexp.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libregexp.a +rm *.o diff --git a/sys/src/lib/sec/build.json b/sys/src/lib/sec/build.json deleted file mode 100644 index a38f4ea..0000000 --- a/sys/src/lib/sec/build.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "libsec": { - "Include": [ - "../lib.json" - ], - "Cflags": [ - "-I../mp/port/" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libsec.a", - "SourceFiles": [ - "port/aes.c", - "port/aes_gcm.c", - "port/aes_xts.c", - "port/blowfish.c", - "port/ccpoly.c", - "port/chacha.c", - "port/crypt.c", - "port/curve25519.c", - "port/curve25519_dh.c", - "port/decodepem.c", - "port/des3CBC.c", - "port/des3ECB.c", - "port/des.c", - "port/desCBC.c", - "port/desECB.c", - "port/desmodes.c", - "port/dh.c", - "port/dsaalloc.c", - "port/dsagen.c", - "port/dsaprimes.c", - "port/dsaprivtopub.c", - "port/dsasign.c", - "port/dsaverify.c", - "port/ecc.c", - "port/egalloc.c", - "port/egdecrypt.c", - "port/egencrypt.c", - "port/eggen.c", - "port/egprivtopub.c", - "port/egsign.c", - "port/egverify.c", - "port/fastrand.c", - "port/genprime.c", - "port/genrandom.c", - "port/gensafeprime.c", - "port/genstrongprime.c", - "port/hkdf.c", - "port/hmac.c", - "port/jacobian.c", - "port/md4.c", - "port/md5block.c", - "port/md5.c", - "port/md5pickle.c", - "port/nfastrand.c", - "port/pbkdf2.c", - "port/poly1305.c", - "port/prng.c", - "port/probably_prime.c", - "port/rc4.c", - "port/readcert.c", - "port/ripemd.c", - "port/rsaalloc.c", - "port/rsadecrypt.c", - "port/rsaencrypt.c", - "port/rsafill.c", - "port/rsagen.c", - "port/rsaprivtopub.c", - "port/salsa.c", - "port/secp256k1.c", - "port/secp256r1.c", - "port/sha1block.c", - "port/sha1.c", - "port/sha1pickle.c", - "port/sha2_128.c", - "port/sha2_64.c", - "port/sha2block128.c", - "port/sha2block64.c", - "port/smallprimes.c", - "port/thumb.c", - "port/tlshand.c", - "port/tsmemcmp.c", - "port/x509.c" - ] - } -} diff --git a/sys/src/lib/sec/klibsec.json b/sys/src/lib/sec/klibsec.json deleted file mode 100644 index afc24f6..0000000 --- a/sys/src/lib/sec/klibsec.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "Kernellibsec": { - "Include": [ - "../klib.json" - ], - "Cflags": [ - "-I../mp/port/" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "klibsec.a", - "SourceFiles": [ - "port/aes.c", - "port/aes_gcm.c", - "port/aes_xts.c", - "port/blowfish.c", - "port/ccpoly.c", - "port/chacha.c", - "port/curve25519.c", - "port/curve25519_dh.c", - "port/decodepem.c", - "port/des3CBC.c", - "port/des3ECB.c", - "port/des.c", - "port/desCBC.c", - "port/desECB.c", - "port/desmodes.c", - "port/dh.c", - "port/dsaalloc.c", - "port/dsagen.c", - "port/dsaprimes.c", - "port/dsaprivtopub.c", - "port/dsasign.c", - "port/dsaverify.c", - "port/ecc.c", - "port/egalloc.c", - "port/egdecrypt.c", - "port/egencrypt.c", - "port/eggen.c", - "port/egprivtopub.c", - "port/egsign.c", - "port/egverify.c", - "port/fastrand.c", - "port/genprime.c", - "port/gensafeprime.c", - "port/genstrongprime.c", - "port/hkdf.c", - "port/hmac.c", - "port/jacobian.c", - "port/md4.c", - "port/md5block.c", - "port/md5.c", - "port/md5pickle.c", - "port/nfastrand.c", - "port/pbkdf2.c", - "port/poly1305.c", - "port/prng.c", - "port/probably_prime.c", - "port/rc4.c", - "port/ripemd.c", - "port/rsaalloc.c", - "port/rsadecrypt.c", - "port/rsaencrypt.c", - "port/rsafill.c", - "port/rsagen.c", - "port/rsaprivtopub.c", - "port/salsa.c", - "port/secp256k1.c", - "port/secp256r1.c", - "port/sha1block.c", - "port/sha1.c", - "port/sha1pickle.c", - "port/sha2_128.c", - "port/sha2_64.c", - "port/sha2block128.c", - "port/sha2block64.c", - "port/smallprimes.c", - "port/thumb.c", - "port/tsmemcmp.c", - "port/x509.c" - ] - } -} diff --git a/sys/src/lib/sec/klibsec.rc.build b/sys/src/lib/sec/klibsec.rc.build new file mode 100644 index 0000000..5daa41a --- /dev/null +++ b/sys/src/lib/sec/klibsec.rc.build @@ -0,0 +1,79 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + port/aes.c \ + port/aes_gcm.c \ + port/aes_xts.c \ + port/blowfish.c \ + port/ccpoly.c \ + port/chacha.c \ + port/curve25519.c \ + port/curve25519_dh.c \ + port/decodepem.c \ + port/des3CBC.c \ + port/des3ECB.c \ + port/des.c \ + port/desCBC.c \ + port/desECB.c \ + port/desmodes.c \ + port/dh.c \ + port/dsaalloc.c \ + port/dsagen.c \ + port/dsaprimes.c \ + port/dsaprivtopub.c \ + port/dsasign.c \ + port/dsaverify.c \ + port/ecc.c \ + port/egalloc.c \ + port/egdecrypt.c \ + port/egencrypt.c \ + port/eggen.c \ + port/egprivtopub.c \ + port/egsign.c \ + port/egverify.c \ + port/fastrand.c \ + port/genprime.c \ + port/gensafeprime.c \ + port/genstrongprime.c \ + port/hkdf.c \ + port/hmac.c \ + port/jacobian.c \ + port/md4.c \ + port/md5block.c \ + port/md5.c \ + port/md5pickle.c \ + port/nfastrand.c \ + port/pbkdf2.c \ + port/poly1305.c \ + port/prng.c \ + port/probably_prime.c \ + port/rc4.c \ + port/ripemd.c \ + port/rsaalloc.c \ + port/rsadecrypt.c \ + port/rsaencrypt.c \ + port/rsafill.c \ + port/rsagen.c \ + port/rsaprivtopub.c \ + port/salsa.c \ + port/secp256k1.c \ + port/secp256r1.c \ + port/sha1block.c \ + port/sha1.c \ + port/sha1pickle.c \ + port/sha2_128.c \ + port/sha2_64.c \ + port/sha2block128.c \ + port/sha2block64.c \ + port/smallprimes.c \ + port/thumb.c \ + port/tsmemcmp.c \ + port/x509.c \ + -I../mp/port/ \ + $KLIB_CFLAGS +prependLibraryName klibsec.a +$AR -rs $JEHANNE/arch/$ARCH/lib/klibsec.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/klibsec.a +rm *.o diff --git a/sys/src/lib/sec/sec.rc.build b/sys/src/lib/sec/sec.rc.build new file mode 100644 index 0000000..caa6459 --- /dev/null +++ b/sys/src/lib/sec/sec.rc.build @@ -0,0 +1,85 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + port/aes.c \ + port/aes_gcm.c \ + port/aes_xts.c \ + port/blowfish.c \ + port/ccpoly.c \ + port/chacha.c \ + port/crypt.c \ + port/curve25519.c \ + port/curve25519_dh.c \ + port/decodepem.c \ + port/des3CBC.c \ + port/des3ECB.c \ + port/des.c \ + port/desCBC.c \ + port/desECB.c \ + port/desmodes.c \ + port/dh.c \ + port/dsaalloc.c \ + port/dsagen.c \ + port/dsaprimes.c \ + port/dsaprivtopub.c \ + port/dsasign.c \ + port/dsaverify.c \ + port/ecc.c \ + port/egalloc.c \ + port/egdecrypt.c \ + port/egencrypt.c \ + port/eggen.c \ + port/egprivtopub.c \ + port/egsign.c \ + port/egverify.c \ + port/fastrand.c \ + port/genprime.c \ + port/genrandom.c \ + port/gensafeprime.c \ + port/genstrongprime.c \ + port/hkdf.c \ + port/hmac.c \ + port/jacobian.c \ + port/md4.c \ + port/md5block.c \ + port/md5.c \ + port/md5pickle.c \ + port/nfastrand.c \ + port/pbkdf2.c \ + port/poly1305.c \ + port/prng.c \ + port/probably_prime.c \ + port/rc4.c \ + port/readcert.c \ + port/ripemd.c \ + port/rsaalloc.c \ + port/rsadecrypt.c \ + port/rsaencrypt.c \ + port/rsafill.c \ + port/rsagen.c \ + port/rsaprivtopub.c \ + port/salsa.c \ + port/secp256k1.c \ + port/secp256r1.c \ + port/sha1block.c \ + port/sha1.c \ + port/sha1pickle.c \ + port/sha2_128.c \ + port/sha2_64.c \ + port/sha2block128.c \ + port/sha2block64.c \ + port/smallprimes.c \ + port/thumb.c \ + port/tlshand.c \ + port/tsmemcmp.c \ + port/x509.c \ + -I../mp/port/ \ + $STACKCHECK_CFLAGS \ + -c \ + $CFLAGS +prependLibraryName libsec.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libsec.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libsec.a +rm *.o diff --git a/sys/src/lib/thread/build.json b/sys/src/lib/thread/build.json deleted file mode 100644 index a690318..0000000 --- a/sys/src/lib/thread/build.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "libthread": { - "Include": [ - "/arch/$ARCH/include/cflags.json", - "../lib.json" - ], - "Install": "/arch/$ARCH/lib/", - "Library": "libthread.a", - "SourceFiles": [ - "$ARCH.c", - "channel.c", - "chanprint.c", - "create.c", - "debug.c", - "dial.c", - "exec.c", - "exit.c", - "id.c", - "iocall.c", - "ioclose.c", - "iodial.c", - "ioopen.c", - "ioproc.c", - "ioread.c", - "ioreadn.c", - "iosleep.c", - "iowrite.c", - "kill.c", - "lib.c", - "main.c", - "note.c", - "ref.c", - "rendez.c", - "sched.c" - ] - } -} diff --git a/sys/src/lib/thread/thread.rc.build b/sys/src/lib/thread/thread.rc.build new file mode 100644 index 0000000..32ec464 --- /dev/null +++ b/sys/src/lib/thread/thread.rc.build @@ -0,0 +1,37 @@ +#!/cmd/rc +if ( ~ 0 $#BUILD_INITIALIZED ) . $JEHANNE/arch/rc/lib/build/utils.rc + +rm -f *.o *.tag.* +$CC \ + amd64.c \ + channel.c \ + chanprint.c \ + create.c \ + debug.c \ + dial.c \ + exec.c \ + exit.c \ + id.c \ + iocall.c \ + ioclose.c \ + iodial.c \ + ioopen.c \ + ioproc.c \ + ioread.c \ + ioreadn.c \ + iosleep.c \ + iowrite.c \ + kill.c \ + lib.c \ + main.c \ + note.c \ + ref.c \ + rendez.c \ + sched.c \ + $CFLAGS \ + $STACKCHECK_CFLAGS \ + -c +prependLibraryName libthread.a +$AR -rs $JEHANNE/arch/$ARCH/lib/libthread.a *.o +$RANLIB $JEHANNE/arch/$ARCH/lib/libthread.a +rm *.o diff --git a/sys/src/sysconf.json b/sys/src/sysconf.json deleted file mode 100644 index 2f186d0..0000000 --- a/sys/src/sysconf.json +++ /dev/null @@ -1,606 +0,0 @@ -{ - "Bootmethods": [ - { - "Arg": "", - "Config": "configtcp", - "Connect": "connecttcp", - "Name": "tcp" - }, - { - "Arg": "", - "Config": "configrc", - "Connect": "connectrc", - "Name": "rc" - }, - { - "Arg": "", - "Config": "configlocal", - "Connect": "connectlocal", - "Name": "local" - } - ], - "Syscalls": [ - { - "Args": [ - "char*", - "int" - ], - "Id": 1, - "Name": "await", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "long" - ], - "Id": 2, - "Name": "awake", - "Ret": [ - "long" - ] - }, - { - "Args": [ - "const char*", - "const char*", - "int" - ], - "Id": 3, - "Name": "bind", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "int" - ], - "Id": 4, - "Name": "close", - "Ret": [ - "long" - ] - }, - { - "Args": [ - "const char*", - "long", - "long" - ], - "Id": 5, - "Name": "create", - "Ret": [ - "long" - ] - }, - { - "Args": [ - "char*", - "int" - ], - "Id": 6, - "Name": "errstr", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "const char*", - "const char**" - ], - "Id": 7, - "Name": "exec", - "Ret": [ - "uintptr_t" - ] - }, - { - "Args": [ - "const char*" - ], - "Id": 8, - "Name": "_exits", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "int", - "const char*" - ], - "Id": 9, - "Name": "fauth", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "int32_t", - "char*", - "uint32_t" - ], - "Id": 10, - "Name": "fd2path", - "Ret": [ - "int32_t" - ] - }, - { - "Args": [ - "int", - "uint8_t*", - "int" - ], - "Id": 11, - "Name": "fstat", - "Ret": [ - "long" - ] - }, - { - "Args": [ - "int", - "int", - "const char*", - "int" - ], - "Id": 12, - "Name": "fversion", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "int32_t", - "const uint8_t*", - "uint32_t" - ], - "Id": 13, - "Name": "fwstat", - "Ret": [ - "long" - ] - }, - { - "Args": [ - "int", - "int", - "const char*", - "uint32_t", - "const char*", - "int" - ], - "Id": 14, - "Name": "mount", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "int" - ], - "Id": 15, - "Name": "noted", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "const void*" - ], - "Id": 16, - "Name": "notify", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "const char*", - "uint32_t" - ], - "Id": 17, - "Name": "open", - "Ret": [ - "long" - ] - }, - { - "Args": [ - "int", - "void*", - "long", - "long" - ], - "Id": 18, - "Name": "pread", - "Ret": [ - "long" - ] - }, - { - "Args": [ - "int", - "const void*", - "long", - "long" - ], - "Id": 19, - "Name": "pwrite", - "Ret": [ - "long" - ] - }, - { - "Args": [ - "const char*" - ], - "Id": 20, - "Name": "remove", - "Ret": [ - "long" - ] - }, - { - "Args": [ - "const void*", - "void*" - ], - "Id": 21, - "Name": "rendezvous", - "Ret": [ - "void*" - ] - }, - { - "Args": [ - "uint32_t" - ], - "Id": 22, - "Name": "rfork", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "int", - "long", - "int" - ], - "Id": 23, - "Name": "seek", - "Ret": [ - "long" - ] - }, - { - "Args": [ - "int*", - "int" - ], - "Id": 24, - "Name": "semacquire", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "int*", - "int" - ], - "Id": 25, - "Name": "semrelease", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "const char*", - "const char*" - ], - "Id": 26, - "Name": "unmount", - "Ret": [ - "int" - ] - }, - { - "Args": [ - "unsigned long" - ], - "Id": 27, - "Name": "alarm", - "Ret": [ - "long" - ] - } - ], - "Syserrors": [ - { - "Id": 0, - "Name": "Ebadarg", - "String": "bad arg in system call" - }, - { - "Id": 1, - "Name": "Ebadchar", - "String": "bad character in file name" - }, - { - "Id": 2, - "Name": "Ebadctl", - "String": "bad process or channel control request" - }, - { - "Id": 3, - "Name": "Ebadexec", - "String": "exec header invalid" - }, - { - "Id": 4, - "Name": "Ebadfd", - "String": "fd out of range or not open" - }, - { - "Id": 5, - "Name": "Ebadip", - "String": "bad ip address syntax" - }, - { - "Id": 6, - "Name": "Ebadsharp", - "String": "unknown device in # filename" - }, - { - "Id": 7, - "Name": "Ebadspec", - "String": "bad attach specifier" - }, - { - "Id": 8, - "Name": "Ebadstat", - "String": "malformed stat buffer" - }, - { - "Id": 9, - "Name": "Ebadusefd", - "String": "inappropriate use of fd" - }, - { - "Id": 10, - "Name": "Ecmdargs", - "String": "wrong #args in control message" - }, - { - "Id": 11, - "Name": "Econinuse", - "String": "connection in use" - }, - { - "Id": 12, - "Name": "Econrefused", - "String": "connection refused" - }, - { - "Id": 13, - "Name": "Edirseek", - "String": "seek in directory" - }, - { - "Id": 14, - "Name": "Eexist", - "String": "file already exists" - }, - { - "Id": 15, - "Name": "Efilename", - "String": "file name syntax" - }, - { - "Id": 16, - "Name": "Egreg", - "String": "ken has left the building" - }, - { - "Id": 17, - "Name": "Ehungup", - "String": "i/o on hungup channel" - }, - { - "Id": 18, - "Name": "Eintr", - "String": "interrupted" - }, - { - "Id": 19, - "Name": "Einuse", - "String": "device or object already in use" - }, - { - "Id": 20, - "Name": "Eio", - "String": "i/o error" - }, - { - "Id": 21, - "Name": "Eioload", - "String": "i/o error in demand load" - }, - { - "Id": 22, - "Name": "Eisdir", - "String": "file is a directory" - }, - { - "Id": 23, - "Name": "Eismtpt", - "String": "is a mount point" - }, - { - "Id": 24, - "Name": "Eisstream", - "String": "seek on a stream" - }, - { - "Id": 25, - "Name": "Emount", - "String": "inconsistent mount" - }, - { - "Id": 26, - "Name": "Emountrpc", - "String": "mount rpc error" - }, - { - "Id": 27, - "Name": "Emouseset", - "String": "mount rpc error" - }, - { - "Id": 28, - "Name": "Enegoff", - "String": "negative i/o offset" - }, - { - "Id": 29, - "Name": "Enoattach", - "String": "mount/attach disallowed" - }, - { - "Id": 30, - "Name": "Enochild", - "String": "no living children" - }, - { - "Id": 31, - "Name": "Enocreate", - "String": "mounted directory forbids creation" - }, - { - "Id": 32, - "Name": "Enodev", - "String": "no free devices" - }, - { - "Id": 33, - "Name": "Enoerror", - "String": "no error" - }, - { - "Id": 34, - "Name": "Enofd", - "String": "no free file descriptors" - }, - { - "Id": 35, - "Name": "Enomem", - "String": "kernel allocate failed" - }, - { - "Id": 36, - "Name": "Enonexist", - "String": "file does not exist" - }, - { - "Id": 37, - "Name": "Enoport", - "String": "network port not available" - }, - { - "Id": 38, - "Name": "Enoreg", - "String": "process has no saved registers" - }, - { - "Id": 39, - "Name": "Enoswap", - "String": "swap space full" - }, - { - "Id": 40, - "Name": "Enotdir", - "String": "not a directory" - }, - { - "Id": 41, - "Name": "Enovmem", - "String": "virtual memory allocation failed" - }, - { - "Id": 42, - "Name": "Eperm", - "String": "permission denied" - }, - { - "Id": 43, - "Name": "Eprocdied", - "String": "process exited" - }, - { - "Id": 44, - "Name": "Eshort", - "String": "i/o count too small" - }, - { - "Id": 45, - "Name": "Eshortstat", - "String": "stat buffer too small" - }, - { - "Id": 46, - "Name": "Eshutdown", - "String": "device shut down" - }, - { - "Id": 47, - "Name": "Esoverlap", - "String": "segments overlap" - }, - { - "Id": 48, - "Name": "Etimedout", - "String": "connection timed out" - }, - { - "Id": 49, - "Name": "Etoobig", - "String": "read or write too large" - }, - { - "Id": 50, - "Name": "Etoosmall", - "String": "read or write too small" - }, - { - "Id": 51, - "Name": "Eunion", - "String": "not in union" - }, - { - "Id": 52, - "Name": "Eunmount", - "String": "not mounted" - }, - { - "Id": 53, - "Name": "Ememinuse", - "String": "cannot free memory used by other processes" - }, - { - "Id": 54, - "Name": "Etoolong", - "String": "name too long" - } - ] -} diff --git a/sys/src/sysconf/bootmethods.conf b/sys/src/sysconf/bootmethods.conf new file mode 100644 index 0000000..8a37c73 --- /dev/null +++ b/sys/src/sysconf/bootmethods.conf @@ -0,0 +1,3 @@ +tcp configtcp connecttcp +rc configrc connectrc +local configlocal connectlocal diff --git a/sys/src/sysconf/errors.rc.confs b/sys/src/sysconf/errors.rc.confs new file mode 100644 index 0000000..123b37b --- /dev/null +++ b/sys/src/sysconf/errors.rc.confs @@ -0,0 +1,55 @@ +CODE=1; NAME=Ebadarg; MSG='bad arg in system call' +CODE=2; NAME=Ebadchar; MSG='bad character in file name' +CODE=3; NAME=Ebadctl; MSG='bad process or channel control request' +CODE=4; NAME=Ebadexec; MSG='exec header invalid' +CODE=5; NAME=Ebadfd; MSG='fd out of range or not open' +CODE=6; NAME=Ebadip; MSG='bad ip address syntax' +CODE=7; NAME=Ebadsharp; MSG='unknown device in # filename' +CODE=8; NAME=Ebadspec; MSG='bad attach specifier' +CODE=9; NAME=Ebadstat; MSG='malformed stat buffer' +CODE=10; NAME=Ebadusefd; MSG='inappropriate use of fd' +CODE=11; NAME=Ecmdargs; MSG='wrong #args in control message' +CODE=12; NAME=Econinuse; MSG='connection in use' +CODE=13; NAME=Econrefused; MSG='connection refused' +CODE=14; NAME=Edirseek; MSG='seek in directory' +CODE=15; NAME=Eexist; MSG='file already exists' +CODE=16; NAME=Efilename; MSG='file name syntax' +CODE=17; NAME=Egreg; MSG='ken has left the building' +CODE=18; NAME=Ehungup; MSG='i/o on hungup channel' +CODE=19; NAME=Eintr; MSG='interrupted' +CODE=20; NAME=Einuse; MSG='device or object already in use' +CODE=21; NAME=Eio; MSG='i/o error' +CODE=22; NAME=Eioload; MSG='i/o error in demand load' +CODE=23; NAME=Eisdir; MSG='file is a directory' +CODE=24; NAME=Eismtpt; MSG='is a mount point' +CODE=25; NAME=Eisstream; MSG='seek on a stream' +CODE=26; NAME=Emount; MSG='inconsistent mount' +CODE=27; NAME=Emountrpc; MSG='mount rpc error' +CODE=28; NAME=Emouseset; MSG='mount rpc error' +CODE=29; NAME=Enegoff; MSG='negative i/o offset' +CODE=30; NAME=Enoattach; MSG='mount/attach disallowed' +CODE=31; NAME=Enochild; MSG='no living children' +CODE=32; NAME=Enocreate; MSG='mounted directory forbids creation' +CODE=33; NAME=Enodev; MSG='no free devices' +CODE=34; NAME=Enoerror; MSG='no error' +CODE=35; NAME=Enofd; MSG='no free file descriptors' +CODE=36; NAME=Enomem; MSG='kernel allocate failed' +CODE=37; NAME=Enonexist; MSG='file does not exist' +CODE=38; NAME=Enoport; MSG='network port not available' +CODE=39; NAME=Enoreg; MSG='process has no saved registers' +CODE=40; NAME=Enoswap; MSG='swap space full' +CODE=41; NAME=Enotdir; MSG='not a directory' +CODE=42; NAME=Enovmem; MSG='virtual memory allocation failed' +CODE=43; NAME=Eperm; MSG='permission denied' +CODE=44; NAME=Eprocdied; MSG='process exited' +CODE=45; NAME=Eshort; MSG='i/o count too small' +CODE=46; NAME=Eshortstat; MSG='stat buffer too small' +CODE=47; NAME=Eshutdown; MSG='device shut down' +CODE=48; NAME=Esoverlap; MSG='segments overlap' +CODE=49; NAME=Etimedout; MSG='connection timed out' +CODE=50; NAME=Etoobig; MSG='read or write too large' +CODE=51; NAME=Etoosmall; MSG='read or write too small' +CODE=52; NAME=Eunion; MSG='not in union' +CODE=53; NAME=Eunmount; MSG='not mounted' +CODE=54; NAME=Ememinuse; MSG='cannot free memory used by other processes' +CODE=55; NAME=Etoolong; MSG='name too long' diff --git a/sys/src/sysconf/syscalls.rc.confs b/sys/src/sysconf/syscalls.rc.confs new file mode 100644 index 0000000..1002d29 --- /dev/null +++ b/sys/src/sysconf/syscalls.rc.confs @@ -0,0 +1,27 @@ +ID=1; NAME=await; RET=int; ARGS=('char*' 'int') +ID=2; NAME=awake; RET=long; ARGS=('long') +ID=3; NAME=bind; RET=int; ARGS=('const char*' 'const char*' 'int') +ID=4; NAME=close; RET=long; ARGS=('int') +ID=5; NAME=create; RET=long; ARGS=('const char*' 'long' 'long') +ID=6; NAME=errstr; RET=int; ARGS=('char*' 'int') +ID=7; NAME=exec; RET=uintptr_t; ARGS=('const char*' 'const char**') +ID=8; NAME=_exits; RET=int; ARGS=('const char*') +ID=9; NAME=fauth; RET=int; ARGS=('int' 'const char*') +ID=10; NAME=fd2path; RET=int32_t; ARGS=('int32_t' 'char*' 'uint32_t') +ID=11; NAME=fstat; RET=long; ARGS=('int' 'uint8_t*' 'int') +ID=12; NAME=fversion; RET=int; ARGS=('int' 'int' 'const char*' 'int') +ID=13; NAME=fwstat; RET=long; ARGS=('int32_t' 'const uint8_t*' 'uint32_t') +ID=14; NAME=mount; RET=int; ARGS=('int' 'int' 'const char*' 'uint32_t' 'const char*' 'int') +ID=15; NAME=noted; RET=int; ARGS=('int') +ID=16; NAME=notify; RET=int; ARGS=('const void*') +ID=17; NAME=open; RET=long; ARGS=('const char*' 'uint32_t') +ID=18; NAME=pread; RET=long; ARGS=('int' 'void*' 'long' 'long') +ID=19; NAME=pwrite; RET=long; ARGS=('int' 'const void*' 'long' 'long') +ID=20; NAME=remove; RET=long; ARGS=('const char*') +ID=21; NAME=rendezvous; RET=void*; ARGS=('const void*' 'void*') +ID=22; NAME=rfork; RET=int; ARGS=('uint32_t') +ID=23; NAME=seek; RET=long; ARGS=('int' 'long' 'int') +ID=24; NAME=semacquire; RET=int; ARGS=('int*' 'int') +ID=25; NAME=semrelease; RET=int; ARGS=('int*' 'int') +ID=26; NAME=unmount; RET=int; ARGS=('const char*' 'const char*') +ID=27; NAME=alarm; RET=long; ARGS=('unsigned long')