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:
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