scc

simple c99 compiler
git clone git://git.simple-cc.org/scc
Log | Files | Refs | README | LICENSE

commit 47156bbbbd6da382601e384354bb5a07a526c19f
parent cbb12aac57c4df5f1ef0ccb3650d35659686fa58
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Tue, 22 Oct 2019 06:34:41 +0200

Add install script

This script makes easier to install scc because
there is a proto file that specifies the list
of files to be installed and the permisions of
every file.

Diffstat:
MMakefile | 6++++--
MREADME | 3+++
Ascripts/install | 38++++++++++++++++++++++++++++++++++++++
Ascripts/proto | 146+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 191 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile @@ -3,8 +3,7 @@ PROJECTDIR = . include $(PROJECTDIR)/scripts/rules.mk -PREFIX = $(HOME) -MANPREFIX = $(PREFIX)/share/man +PREFIX= /usr/local DIRS = src include/scc/scc tests all: src @@ -35,6 +34,9 @@ $(ENVIRON): dep: $(FORALL) +install: all + $(SCRIPTDIR)/install $(PREFIX) + distclean: clean $(MAKE) $(ENVIRON) $(FORALL) diff --git a/README b/README @@ -5,6 +5,9 @@ SCC is a portable toolchain that can be compiled on any UNIX system out of the box. It supports four main configuration options that can be passed to the command line: + - PREFIX: Prefix of the path where scc toolchain is going + to be installed. /usr/local by default. + - CROSS_COMPILE: Specify a prefix name for the tools called by the Makefile. diff --git a/scripts/install b/scripts/install @@ -0,0 +1,38 @@ +#!/bin/sh + +set -e + +for i +do + case "$i" in + -p) + proto=$2 + shift 2 + ;; + -*) + echo 1=$1 + echo usage: install -t prefix [-p proto] >&2 + exit 1 + ;; + esac +done + +prefix=$1 + +while read type perm name +do + case $type in + d) + mkdir -p ${prefix?}/$name + ;; + f) + cp $name ${prefix?}/$name + ;; + *) + echo install: wrong entry type >&2 + exit 1 + ;; + esac + + chmod $perm $prefix/$name +done < ${proto:-scripts/proto} diff --git a/scripts/proto b/scripts/proto @@ -0,0 +1,146 @@ +d 755 lib +d 755 lib/scc +f 644 lib/scc/libmach.a +d 755 lib/scc/amd64-netbsd +d 755 lib/scc/i386-linux +d 755 lib/scc/i386-openbsd +d 755 lib/scc/amd64-linux +f 644 lib/scc/amd64-linux/libc.a +f 644 lib/scc/amd64-linux/crt.o +f 644 lib/scc/amd64-linux/libcrt.a +f 644 lib/scc/libscc.a +d 755 lib/scc/amd64-openbsd +d 755 bin +f 755 bin/ld +f 755 bin/cpp +f 755 bin/cc +f 755 bin/nm +f 755 bin/objdump +f 755 bin/addr2line +f 755 bin/objcopy +f 755 bin/strip +f 755 bin/ranlib +f 755 bin/size +f 755 bin/ar +d 755 include +f 644 include/string.h +f 644 include/wchar.h +f 644 include/float.h +d 755 include/scc +d 755 include/scc/scc +f 644 include/scc/scc/ar.h +d 755 include/scc/scc/coff32 +f 644 include/scc/scc/coff32/linenum.h +f 644 include/scc/scc/coff32/scnhdr.h +f 644 include/scc/scc/coff32/filehdr.h +f 644 include/scc/scc/coff32/aouthdr.h +f 644 include/scc/scc/coff32/reloc.h +f 644 include/scc/scc/coff32/syms.h +f 644 include/scc/scc/scc.h +f 644 include/scc/scc/mach.h +f 644 include/limits.h +f 644 include/wctype.h +f 644 include/ctype.h +f 644 include/assert.h +f 644 include/stdarg.h +f 644 include/stdlib.h +f 644 include/signal.h +f 644 include/math.h +f 644 include/errno.h +f 644 include/stdio.h +f 644 include/stdbool.h +f 644 include/locale.h +f 644 include/stddef.h +f 644 include/setjmp.h +f 644 include/time.h +f 644 include/stdint.h +d 755 include/bits +d 755 include/bits/darwin +d 755 include/bits/darwin/sys +f 644 include/bits/darwin/sys/signal.h +f 644 include/bits/darwin/sys/errno.h +f 644 include/bits/darwin/sys.h +d 755 include/bits/linux +d 755 include/bits/linux/sys +f 644 include/bits/linux/sys/signal.h +f 644 include/bits/linux/sys/errno.h +f 644 include/bits/linux/sys.h +d 755 include/bits/openbsd +d 755 include/bits/openbsd/sys +f 644 include/bits/openbsd/sys/signal.h +f 644 include/bits/openbsd/sys/errno.h +f 644 include/bits/openbsd/sys.h +d 755 include/bits/dragonfly +d 755 include/bits/dragonfly/sys +f 644 include/bits/dragonfly/sys/signal.h +f 644 include/bits/dragonfly/sys/errno.h +f 644 include/bits/dragonfly/sys.h +d 755 include/bits/arm32 +d 755 include/bits/arm32/arch +f 644 include/bits/arm32/arch/string.h +f 644 include/bits/arm32/arch/limits.h +f 644 include/bits/arm32/arch/stdlib.h +f 644 include/bits/arm32/arch/stdio.h +f 644 include/bits/arm32/arch/stddef.h +f 644 include/bits/arm32/arch/setjmp.h +f 644 include/bits/arm32/arch/time.h +f 644 include/bits/arm32/arch/stdint.h +d 755 include/bits/z80 +d 755 include/bits/z80/arch +f 644 include/bits/z80/arch/string.h +f 644 include/bits/z80/arch/limits.h +f 644 include/bits/z80/arch/stdlib.h +f 644 include/bits/z80/arch/stdio.h +f 644 include/bits/z80/arch/stddef.h +f 644 include/bits/z80/arch/time.h +f 644 include/bits/z80/arch/stdint.h +d 755 include/bits/arm64 +d 755 include/bits/arm64/arch +f 644 include/bits/arm64/arch/string.h +f 644 include/bits/arm64/arch/limits.h +f 644 include/bits/arm64/arch/stdlib.h +f 644 include/bits/arm64/arch/stdio.h +f 644 include/bits/arm64/arch/stddef.h +f 644 include/bits/arm64/arch/setjmp.h +f 644 include/bits/arm64/arch/time.h +f 644 include/bits/arm64/arch/stdint.h +d 755 include/bits/amd64 +d 755 include/bits/amd64/arch +f 644 include/bits/amd64/arch/string.h +f 644 include/bits/amd64/arch/limits.h +f 644 include/bits/amd64/arch/stdlib.h +f 644 include/bits/amd64/arch/stdio.h +f 644 include/bits/amd64/arch/stddef.h +f 644 include/bits/amd64/arch/setjmp.h +f 644 include/bits/amd64/arch/time.h +f 644 include/bits/amd64/arch/stdint.h +d 755 include/bits/netbsd +d 755 include/bits/netbsd/sys +f 644 include/bits/netbsd/sys/signal.h +f 644 include/bits/netbsd/sys/errno.h +f 644 include/bits/netbsd/sys.h +d 755 include/bits/i386 +d 755 include/bits/i386/arch +f 644 include/bits/i386/arch/string.h +f 644 include/bits/i386/arch/limits.h +f 644 include/bits/i386/arch/stdlib.h +f 644 include/bits/i386/arch/stdio.h +f 644 include/bits/i386/arch/stddef.h +f 644 include/bits/i386/arch/time.h +f 644 include/bits/i386/arch/stdint.h +d 755 libexec +d 755 libexec/scc +f 755 libexec/scc/as-i386 +f 755 libexec/scc/as-i286 +f 755 libexec/scc/cc2-qbe_amd64-sysv +f 755 libexec/scc/cc1-amd64-sysv +f 755 libexec/scc/as-powerpc64 +f 755 libexec/scc/cc1-i386-sysv +f 755 libexec/scc/cc1-z80-scc +f 755 libexec/scc/cc2-i386-sysv +f 755 libexec/scc/cc1-arm64-sysv +f 755 libexec/scc/as-powerpc +f 755 libexec/scc/as-amd64 +f 755 libexec/scc/cc2-amd64-sysv +f 755 libexec/scc/cc2-z80-scc +f 755 libexec/scc/as-z80