diff options
Diffstat (limited to 'ports')
-rwxr-xr-x | ports/bin/camellia_path_check | 1 | ||||
-rwxr-xr-x | ports/bin/cc | 6 | ||||
-rw-r--r-- | ports/ed | 67 |
3 files changed, 74 insertions, 0 deletions
diff --git a/ports/bin/camellia_path_check b/ports/bin/camellia_path_check new file mode 100755 index 0000000..96b4b06 --- /dev/null +++ b/ports/bin/camellia_path_check @@ -0,0 +1 @@ +#!/bin/sh
\ No newline at end of file diff --git a/ports/bin/cc b/ports/bin/cc new file mode 100755 index 0000000..6478b6e --- /dev/null +++ b/ports/bin/cc @@ -0,0 +1,6 @@ +#!/bin/sh +exec x86_64-elf-gcc -ffreestanding -fPIE -mno-sse \ + -nostdlib -Wl,-pie -Wl,-no-dynamic-linker -T $REPO/src/user/linker.ld \ + -I$REPO/src/ -I$REPO/src/shared/include/ -I$REPO/src/user/lib/include/ \ + $* \ + -L$REPO/out/ -lc -lgcc diff --git a/ports/ed b/ports/ed new file mode 100644 index 0000000..87dd05c --- /dev/null +++ b/ports/ed @@ -0,0 +1,67 @@ +set -eu +camellia_path_check + +fetch() { + # TODO shallow clone, once 7.1 gets tagged + # better yet, use a tarball + git clone https://github.com/ibara/oed + cd oed + git -c advice.detachedHead=false checkout fc1497fa466ff10c7437f07a00ba888242618ce5 +} + +configure() { + cd oed + cat <<\EOF > Makefile +# This Makefile automatically generated by configure. + +CC = cc +CFLAGS = -g -O2 -I. -D_GNU_SOURCE + +PREFIX = /usr/local +MANDIR = /usr/local/man + +PROG = ed +OBJS = buf.o glbl.o io.o main.o re.o sub.o undo.o \ + regcomp.o regerror.o regexec.o regfree.o \ + reallocarray.o strlcat.o strlcpy.o + +all: ${PROG} + +${PROG}: ${OBJS} + ${CC} ${LDFLAGS} -o ${PROG} ${OBJS} + +install: + install -d ${DESTDIR}${PREFIX}/bin + install -d ${DESTDIR}${MANDIR}/man1 + install -c -s -m 755 ${PROG} ${DESTDIR}${PREFIX}/bin + install -c -m 644 ed.1 ${DESTDIR}${MANDIR}/man1/${PROG}.1 + +test: + @echo "No tests" + +clean: + rm -f ${PROG} ${OBJS} + +distclean: clean + rm -f Makefile config.h +EOF + cat <<\EOF > config.h +/* This file automatically generated by configure. */ + +extern void *reallocarray(void *, size_t, size_t); +extern size_t strlcat(char *, const char *, size_t); +extern size_t strlcpy(char *, const char *, size_t); +EOF +} + +prep() { + [ -d oed ] || (fetch) + [ -e oed/Makefile ] || (configure) + cd oed +} + +case $1 in + install) (prep; make; make install "PREFIX=$PREFIX" "MANDIR=$PREFIX/man/") ;; + clean) (prep; make clean) ;; + *) echo "usage: $0 install|clean"; false ;; +esac |