From b4bc94979483c44d91e32f1728d05d0fac4eaea5 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Sun, 17 Apr 2016 23:34:06 -0700 Subject: Add perp-2.07 --- core/gen.rc | 1 + core/perp/.gitignore | 1 + core/perp/gen.rc | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++ core/perp/url | 1 + ninja.rc | 4 +++ 5 files changed, 91 insertions(+) create mode 100644 core/perp/.gitignore create mode 100644 core/perp/gen.rc create mode 100644 core/perp/url diff --git a/core/gen.rc b/core/gen.rc index ae69c366..0088e629 100644 --- a/core/gen.rc +++ b/core/gen.rc @@ -3,6 +3,7 @@ subgen cparser subgen file subgen libfirm subgen loksh +subgen perp subgen plan9port subgen sbase subgen sinit diff --git a/core/perp/.gitignore b/core/perp/.gitignore new file mode 100644 index 00000000..29394683 --- /dev/null +++ b/core/perp/.gitignore @@ -0,0 +1 @@ +tools.ninja diff --git a/core/perp/gen.rc b/core/perp/gen.rc new file mode 100644 index 00000000..eba8f855 --- /dev/null +++ b/core/perp/gen.rc @@ -0,0 +1,84 @@ +cflags\ + -I '$srcdir'/lasagna\ + -I '$outdir' + +{ + include 'toolchain/$host_toolchain.ninja' + exe mk_outvec lasagna/outvec/mk_outvec.c + exe mk_rlimit lasagna/rlimit/mk_rlimit.c + exe mksysstr lasagna/sysstr/mksysstr.c +} >../tools.ninja +subninja '$dir/tools.ninja' + +rule outvec '$outdir/mk_outvec >$out.tmp && mv $out.tmp $out' +build '$outdir'/outvec_STDOUT.h outvec '|' '$outdir'/mk_outvec + +rule rlimit '$outdir/mk_rlimit >$out.tmp && mv $out.tmp $out' +build '$outdir'/rlimit_defs.c.in rlimit '|' '$outdir'/mk_rlimit + +rule sysstr '$outdir/mksysstr $type >$out.tmp && mv $out.tmp $out' +let type errno -- build '$outdir'/sysstr_errno.c.in sysstr '|' '$outdir'/mksysstr +let type signo -- build '$outdir'/sysstr_signo.c.in sysstr '|' '$outdir'/mksysstr + +phony internal_headers outvec_STDOUT.h rlimit_defs.c.in sysstr_^(errno signo)^.c.in + +lib libasagna.a -d 'phony/$dir/internal_headers' lasagna/^(\ + buf/buf_^(cmp copy fill ndx rcopy rndx)^.c\ + cstr/cstr_^(cat chop cmp cmpi contains copy dup lcat lcpy len ltrim match matchi ncmp pos rpos rtrim trim vcat_ vcopy_ vlen_)^.c\ + cdb/^(cdb_^(find cc clear close distance dynget dynread get hashpart init open read seq) cdbmk_^(add addioq addrec clear finish init _update))^.c\ + devout/devout.c\ + domsock/domsock_^(accept close connect create)^.c\ + dynbuf/^(dynbuf.c dynbuf_^(clear copy free freebuf grow need new pack put putb)^.c)\ + dynstr/^(dynstr.c dynstr_^(chop clear copy copys free freestr grow need new put putc putn puts set vputs_)^.c)\ + dynstuf/dynstuf_^(find free get grow init isempty items new peek pop push replace reverse set slots sort stuf visit)^.c\ + execvx/execvx.c\ + fd/fd_^(blocking cloexec dupe move nonblock)^.c\ + hdb/hdb_^(find cc clear close distance dynget dynread get hashpart init open read seq)^.c\ + hdb/hdbmk_^(add addioq addrec clear finish start _update)^.c\ + hfunc/hfunc_^(djba djbm djbx elf1 fnva fnvm ghfa ghfm ghfx jsw1 kp37 kr31 kx17 murm oat1 p50a pjw1 rsuh rot1 rotm sax1 sdbm sfh1 postmix32)^.c\ + ioq/ioq_^(get getln init put putfd putfile stderr stdin stdout vputs_)^.c\ + newenv/newenv.c\ + nextopt/^(nextopt nextopt_progname)^.c\ + nfmt/nfmt_^(uint32 uint32_pad uint32_pad_ uint32_pad0 uint32_pad0_ uint32o uint32o_pad0 uint32o_pad0_ uint32x uint32x_pad uint32x_pad_ uint32x_pad0 uint32x_pad0_ uint64 uint64_pad uint64_pad_ uint64_pad0 uint64_pad0_)^.c\ + nuscan/nuscan_^(uint32 uint32o)^.c\ + outvec/outvec_^(STDERR STDOUT flush put puts vputs_)^.c\ + packet/packet_^(read write)^.c\ + padlock/padlock_^(exbyte exlock extest fcntl shbyte shlock shtest unbyte unlock)^.c\ + pidlock/pidlock_^(check set)^.c\ + pkt/pkt_^(load read write)^.c\ + pollio/pollio.c\ + rlimit/rlimit.c\ + sig/sig_^(block catch catchr unblock)^.c\ + sysstr/sysstr_^(errno signal)^.c\ + tain/tain_^(assign iszero less load load_msecs load_utc minus now pack packhex pause plus tai_pack tai_unpack uptime to_float to_msecs to_utc unpack unpackhex)^.c\ + tx64/^(base64_vec tx64_encode)^.c\ + ufunc/ufunc_^(u32add u48add)^.c\ + upak/upak_vpack.c\ + upak/upak^('' 16 24 32 48 64)^_pack.c\ + upak/upak^('' 16 24 32 48 64)^_unpack.c\ +) + +fn x { + exe=$1 + shift + exe $exe $* libasagna.a + file bin/$exe '$outdir'/$exe 755 +} + +x perpd perp/^(\ + perpd.c\ + perpd_conn.c\ + perpd_svdef.c\ +) + +for(exe in perp^(boot ctl hup ls ok stat)) x $exe perp/$exe.c +for(exe in run^(args argv0 choom detach deux env file limit lock pause session trap tool uid)) x $exe runtools/$exe.c +for(exe in cat^(args env limits uid)) x $exe runtools/$exe.c + +for(man in */man/*.[1-9]) { + ifs=() { + sect=`{printf %s $man | tail -c 1} + base=`{basename $man | head -c -1} + } + file share/man/man$sect/$base.$sect '$srcdir'/$man 644 +} diff --git a/core/perp/url b/core/perp/url new file mode 100644 index 00000000..2078b738 --- /dev/null +++ b/core/perp/url @@ -0,0 +1 @@ +http://b0llix.net/perp/distfiles/perp-2.07.tar.gz diff --git a/ninja.rc b/ninja.rc index 077ca174..81e4296f 100644 --- a/ninja.rc +++ b/ninja.rc @@ -94,6 +94,10 @@ fn ar { fn objects { rule=$1 out=$2 deps=() objs=() { shift 2 + if(~ $1 -d) { + deps=('||' $2) + shift 2 + } for(src) { if(~ $src *.c) { cc $src $deps -- cgit v1.2.3