build: Remove double scc scc indirection - scc - simple c99 compiler
 (HTM) git clone git://git.simple-cc.org/scc
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit fb3572d08e0fdc42b6432203085d3c84889159e2
 (DIR) parent 49a15e6576f3227a8a94eca8a5e1a5fe60d2f86f
 (HTM) Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
       Date:   Fri, 22 Mar 2024 03:26:14 +0100
       
       build: Remove double scc scc indirection
       
       Having a scc/scc directory was a bit inconvenient because
       it didn't too much sense, and as curretly we have the bits
       directory then we can reuse that directory for the same purpose.
       
       This change also implies updating all the deps.mk files that were
       anyway outdated.
       
       Diffstat:
         M Makefile                            |      10 +++++-----
         M README                              |       4 ++--
         R include/scc/scc/.gitignore -> incl… |       0 
         R include/scc/scc/Makefile -> includ… |       0 
         R include/scc/scc/ar.h -> include/bi… |       0 
         R include/scc/scc/arg.h -> include/b… |       0 
         R include/scc/scc/coff32/aouthdr.h -… |       0 
         R include/scc/scc/coff32/filehdr.h -… |       0 
         R include/scc/scc/coff32/linenum.h -… |       0 
         R include/scc/scc/coff32/reloc.h -> … |       0 
         R include/scc/scc/coff32/scnhdr.h ->… |       0 
         R include/scc/scc/coff32/syms.h -> i… |       0 
         R include/scc/scc/cstd-c89.h -> incl… |       0 
         R include/scc/scc/cstd-c99.h -> incl… |       0 
         R include/scc/scc/elf/elfent.h -> in… |       0 
         R include/scc/scc/elf/elfhdr.h -> in… |       0 
         R include/scc/scc/elf/elfphdr.h -> i… |       0 
         R include/scc/scc/elf/elfshdr.h -> i… |       0 
         R include/scc/scc/elf/elftypes.h -> … |       0 
         R include/scc/scc/mach.h -> include/… |       0 
         R include/scc/scc/scc.h -> include/b… |       0 
         R include/scc/scc/sys-musl.h -> incl… |       0 
         R include/scc/scc/sys-scc.h -> inclu… |       0 
         R include/scc/scc/sys-scc_clang.h ->… |       0 
         M scripts/mkdep                       |      11 ++++-------
         M scripts/rules.mk                    |      25 ++++++++++++-------------
         M src/cmd/as/deps.mk                  |      68 +++++++++++++++++++++----------
         M src/cmd/cc/cc1/deps.mk              |      54 ++++++++++++++++----------------
         M src/cmd/cc/cc2/Makefile             |       2 +-
         M src/cmd/cc/cc2/deps.mk              |      60 ++++++++++++++++----------------
         M src/cmd/cc/posix/deps.mk            |       8 ++++----
         M src/cmd/deps.mk                     |     267 +++++++++++++++++--------------
         M src/cmd/ld/deps.mk                  |      24 ++++++++++++------------
         M src/libc/arch/linux/deps.mk         |       1 +
         M src/libc/arch/posix/deps.mk         |       2 ++
         M src/libc/inttypes/deps.mk           |       3 +++
         M src/libc/stdio/deps.mk              |       2 ++
         M src/libc/stdlib/deps.mk             |       2 ++
         M src/libc/wchar/deps.mk              |       3 +++
         M src/libmach/deps.mk                 |     125 +++++++++++++++++++------------
         M src/libscc/deps.mk                  |      23 ++++++++++++++---------
       
       41 files changed, 398 insertions(+), 296 deletions(-)
       ---
 (DIR) diff --git a/Makefile b/Makefile
       @@ -4,7 +4,7 @@ DIRS  =\
                src\
                src/libc\
                src/libcrt\
       -        include/scc/scc\
       +        include/bits/scc\
                tests\
        
        PROJECTDIR = .
       @@ -18,7 +18,7 @@ all: config
                +@$(MAKE) `$(SCRIPTDIR)/config` `uname -m`
        
        config:
       -        cd include/scc/scc && $(MAKE) $@
       +        cd include/bits/scc && $(MAKE) $@
        
        install: all
                $(SCRIPTDIR)/install $(ROOT)
       @@ -31,7 +31,7 @@ uninstall:
        toolchain: src
        libc: src/libc
        libcrt: src/libcrt
       -src: dirs include/scc/scc
       +src: dirs include/bits/scc
        src/libc: dirs
        src/libcrt: dirs
        
       @@ -45,8 +45,8 @@ clean:
                rm -rf dirs coverage
        
        distclean: clean
       -        rm -f include/scc/scc/sys.h
       -        rm -f include/scc/scc/config.h
       +        rm -f include/bits/scc/sys.h
       +        rm -f include/bits/scc/config.h
        
        include scripts/amd64.mk
        include scripts/arm.mk
 (DIR) diff --git a/README b/README
       @@ -97,7 +97,7 @@ Toolchain configuration
        =======================
        At this moment scc is still using some external tools to generate
        the final binaries. The toolchain execution is configured in the
       -file `include/scc/scc/sys.h` and it included basically 5 elements:
       +file `include/bits/scc/sys.h` and it included basically 5 elements:
        
                - LDBIN: macro with the name of the linker binary.
        
       @@ -127,7 +127,7 @@ configuration of the toolchain:
                - scc_clang: It uses clang assembler and linker with the scc libc.
                - musl: It uses GNU assembler and linker with the musl libc.
        
       -The file `include/scc/scc/sys.h` is automatically created from the scc
       +The file `include/bits/scc/sys.h` is automatically created from the scc
        toolchain configuration with the default make target. The target config
        can be used to only create the file based on the value of the variable
        `LIBPROFILE` allowing the user to customize that file as needed. It is
 (DIR) diff --git a/include/scc/scc/.gitignore b/include/bits/scc/.gitignore
 (DIR) diff --git a/include/scc/scc/Makefile b/include/bits/scc/Makefile
 (DIR) diff --git a/include/scc/scc/ar.h b/include/bits/scc/ar.h
 (DIR) diff --git a/include/scc/scc/arg.h b/include/bits/scc/arg.h
 (DIR) diff --git a/include/scc/scc/coff32/aouthdr.h b/include/bits/scc/coff32/aouthdr.h
 (DIR) diff --git a/include/scc/scc/coff32/filehdr.h b/include/bits/scc/coff32/filehdr.h
 (DIR) diff --git a/include/scc/scc/coff32/linenum.h b/include/bits/scc/coff32/linenum.h
 (DIR) diff --git a/include/scc/scc/coff32/reloc.h b/include/bits/scc/coff32/reloc.h
 (DIR) diff --git a/include/scc/scc/coff32/scnhdr.h b/include/bits/scc/coff32/scnhdr.h
 (DIR) diff --git a/include/scc/scc/coff32/syms.h b/include/bits/scc/coff32/syms.h
 (DIR) diff --git a/include/scc/scc/cstd-c89.h b/include/bits/scc/cstd-c89.h
 (DIR) diff --git a/include/scc/scc/cstd-c99.h b/include/bits/scc/cstd-c99.h
 (DIR) diff --git a/include/scc/scc/elf/elfent.h b/include/bits/scc/elf/elfent.h
 (DIR) diff --git a/include/scc/scc/elf/elfhdr.h b/include/bits/scc/elf/elfhdr.h
 (DIR) diff --git a/include/scc/scc/elf/elfphdr.h b/include/bits/scc/elf/elfphdr.h
 (DIR) diff --git a/include/scc/scc/elf/elfshdr.h b/include/bits/scc/elf/elfshdr.h
 (DIR) diff --git a/include/scc/scc/elf/elftypes.h b/include/bits/scc/elf/elftypes.h
 (DIR) diff --git a/include/scc/scc/mach.h b/include/bits/scc/mach.h
 (DIR) diff --git a/include/scc/scc/scc.h b/include/bits/scc/scc.h
 (DIR) diff --git a/include/scc/scc/sys-musl.h b/include/bits/scc/sys-musl.h
 (DIR) diff --git a/include/scc/scc/sys-scc.h b/include/bits/scc/sys-scc.h
 (DIR) diff --git a/include/scc/scc/sys-scc_clang.h b/include/bits/scc/sys-scc_clang.h
 (DIR) diff --git a/scripts/mkdep b/scripts/mkdep
       @@ -2,13 +2,10 @@
        
        set -e
        
       -touch deps.mk
       +echo '#deps' > deps.mk
        
        cat <<EOF | ed -s deps.mk
       -1s/$//
       -g/^#deps/ s///
       -.;\$c
       -#deps
       +a
        $(for i in `find . -name '*.c'`
        do
                file=`basename $i | sed 's/\.c$/.o/'`
       @@ -17,12 +14,12 @@ do
                sed -n "/^#include / {
                        s///
                        s@\"\(.*\)\"@$dir/$file: $dir/\1@p
       -                s@<\(scc/.*\)>@$dir/$file: \$(INCDIR)/scc/\1@p
       +                s@<\(scc/.*\)>@$dir/$file: \$(INCDIR)/bits/\1@p
                }" $i
        done | LC_ALL=C sort -s)
        .
        g@^\./@ s///
        g@ \./@ s// /
       -/^#deps/;$ g/^$/d
       +g/^$/d
        w
        EOF
 (DIR) diff --git a/scripts/rules.mk b/scripts/rules.mk
       @@ -35,9 +35,9 @@ include $(BUILDDIR)/tool/$(TOOL).mk
        include $(BUILDDIR)/host/$(HOST).mk
        
        # Locations for -I or -L in compiler, assembler or linker
       -CPPINCLUDES = -I$(INCDIR)/scc
       -ASINCLUDES= -I$(INCDIR)/scc
       -LDINCLUDES= -L$(LIBDIR)/scc
       +CPPINCLUDES = -I$(INCDIR)/bits
       +ASINCLUDES  = -I$(INCDIR)bits
       +LDINCLUDES  = -L$(LIBDIR)/scc
        
        # C standard for the target compiler
        STD = c99
       @@ -103,15 +103,6 @@ AR = $(CROSS_COMPILE)$(ARCHIVE)
        CPP = $(CROSS_COMPILE)$(PRECOMP)
        GS = gs
        
       -# helper macro to run over all the directories
       -FORALL = +@set -e ;\
       -        for i in $(DIRS); \
       -        do \
       -                cd $$i; \
       -                $(MAKE) $@; \
       -                cd -; \
       -        done
       -
        $(DIRS) DUMMY : FORCE
                +@cd $@ && $(MAKE)
        
       @@ -212,7 +203,15 @@ clean-files:
                rm -f *.i *.d *.o *.a *.elf $(TARGET)
        
        dep: inc-dep
       -        $(FORALL)
       +        @set -e; \
       +        for i in $(DIRS); \
       +        do \
       +                test $$i = qbe && continue;\
       +                test $$i = tests && continue;\
       +                cd $$i; \
       +                $(MAKE) $@; \
       +                cd -; \
       +        done
        
        inc-dep: FORCE
                test -n "$(NODEP)" || $(MKDEP)
 (DIR) diff --git a/src/cmd/as/deps.mk b/src/cmd/as/deps.mk
       @@ -1,57 +1,81 @@
        #deps
       -expr.o: $(INCDIR)/scc/scc/scc.h
       +as.o: $(INCDIR)/bits/scc/arg.h
       +as.o: $(INCDIR)/bits/scc/config.h
       +as.o: $(INCDIR)/bits/scc/scc.h
       +expr.o: $(INCDIR)/bits/scc/mach.h
       +expr.o: $(INCDIR)/bits/scc/scc.h
        expr.o: as.h
       -ins.o: $(INCDIR)/scc/scc/scc.h
       +ins.o: $(INCDIR)/bits/scc/mach.h
       +ins.o: $(INCDIR)/bits/scc/scc.h
        ins.o: as.h
       -main.o: $(INCDIR)/scc/scc/arg.h
       -main.o: $(INCDIR)/scc/scc/scc.h
       +main.o: $(INCDIR)/bits/scc/arg.h
       +main.o: $(INCDIR)/bits/scc/mach.h
       +main.o: $(INCDIR)/bits/scc/scc.h
        main.o: as.h
       -parser.o: $(INCDIR)/scc/scc/cstd.h
       -parser.o: $(INCDIR)/scc/scc/scc.h
       +parser.o: $(INCDIR)/bits/scc/cstd.h
       +parser.o: $(INCDIR)/bits/scc/mach.h
       +parser.o: $(INCDIR)/bits/scc/scc.h
        parser.o: as.h
       -symbol.o: $(INCDIR)/scc/scc/scc.h
       +symbol.o: $(INCDIR)/bits/scc/cstd.h
       +symbol.o: $(INCDIR)/bits/scc/mach.h
       +symbol.o: $(INCDIR)/bits/scc/scc.h
        symbol.o: as.h
       -target/powerpc/ins.o: $(INCDIR)/scc/scc/scc.h
       +target/powerpc/ins.o: $(INCDIR)/bits/scc/mach.h
       +target/powerpc/ins.o: $(INCDIR)/bits/scc/scc.h
        target/powerpc/ins.o: target/powerpc/../../as.h
        target/powerpc/ins.o: target/powerpc/proc.h
       -target/powerpc/powerpc.o: $(INCDIR)/scc/scc/scc.h
       +target/powerpc/powerpc.o: $(INCDIR)/bits/scc/mach.h
       +target/powerpc/powerpc.o: $(INCDIR)/bits/scc/scc.h
        target/powerpc/powerpc.o: target/powerpc/../../as.h
        target/powerpc/powerpc.o: target/powerpc/proc.h
       -target/powerpc/powerpc64.o: $(INCDIR)/scc/scc/scc.h
       +target/powerpc/powerpc64.o: $(INCDIR)/bits/scc/mach.h
       +target/powerpc/powerpc64.o: $(INCDIR)/bits/scc/scc.h
        target/powerpc/powerpc64.o: target/powerpc/../../as.h
        target/powerpc/powerpc64.o: target/powerpc/proc.h
       -target/powerpc/powerpc64tbl.o: $(INCDIR)/scc/scc/scc.h
       +target/powerpc/powerpc64tbl.o: $(INCDIR)/bits/scc/mach.h
       +target/powerpc/powerpc64tbl.o: $(INCDIR)/bits/scc/scc.h
        target/powerpc/powerpc64tbl.o: target/powerpc/../../as.h
        target/powerpc/powerpc64tbl.o: target/powerpc/../powerpc/proc.h
       -target/powerpc/powerpctbl.o: $(INCDIR)/scc/scc/scc.h
       +target/powerpc/powerpctbl.o: $(INCDIR)/bits/scc/mach.h
       +target/powerpc/powerpctbl.o: $(INCDIR)/bits/scc/scc.h
        target/powerpc/powerpctbl.o: target/powerpc/../../as.h
        target/powerpc/powerpctbl.o: target/powerpc/../powerpc/proc.h
       -target/x80/ins.o: $(INCDIR)/scc/scc/scc.h
       +target/x80/ins.o: $(INCDIR)/bits/scc/mach.h
       +target/x80/ins.o: $(INCDIR)/bits/scc/scc.h
        target/x80/ins.o: target/x80/../../as.h
        target/x80/ins.o: target/x80/proc.h
       -target/x80/z80.o: $(INCDIR)/scc/scc/scc.h
       +target/x80/z80.o: $(INCDIR)/bits/scc/mach.h
       +target/x80/z80.o: $(INCDIR)/bits/scc/scc.h
        target/x80/z80.o: target/x80/../../as.h
        target/x80/z80.o: target/x80/../x80/proc.h
       -target/x80/z80tbl.o: $(INCDIR)/scc/scc/scc.h
       +target/x80/z80tbl.o: $(INCDIR)/bits/scc/mach.h
       +target/x80/z80tbl.o: $(INCDIR)/bits/scc/scc.h
        target/x80/z80tbl.o: target/x80/../../as.h
        target/x80/z80tbl.o: target/x80/../x80/proc.h
       -target/x86/amd64.o: $(INCDIR)/scc/scc/scc.h
       +target/x86/amd64.o: $(INCDIR)/bits/scc/mach.h
       +target/x86/amd64.o: $(INCDIR)/bits/scc/scc.h
        target/x86/amd64.o: target/x86/../../as.h
       -target/x86/amd64tbl.o: $(INCDIR)/scc/scc/scc.h
       +target/x86/amd64tbl.o: $(INCDIR)/bits/scc/mach.h
       +target/x86/amd64tbl.o: $(INCDIR)/bits/scc/scc.h
        target/x86/amd64tbl.o: target/x86/../../as.h
        target/x86/amd64tbl.o: target/x86/../x86/proc.h
       -target/x86/i286.o: $(INCDIR)/scc/scc/scc.h
       +target/x86/i286.o: $(INCDIR)/bits/scc/mach.h
       +target/x86/i286.o: $(INCDIR)/bits/scc/scc.h
        target/x86/i286.o: target/x86/../../as.h
        target/x86/i286.o: target/x86/../x86/proc.h
       -target/x86/i286tbl.o: $(INCDIR)/scc/scc/scc.h
       +target/x86/i286tbl.o: $(INCDIR)/bits/scc/mach.h
       +target/x86/i286tbl.o: $(INCDIR)/bits/scc/scc.h
        target/x86/i286tbl.o: target/x86/../../as.h
        target/x86/i286tbl.o: target/x86/../x86/proc.h
       -target/x86/i386.o: $(INCDIR)/scc/scc/scc.h
       +target/x86/i386.o: $(INCDIR)/bits/scc/mach.h
       +target/x86/i386.o: $(INCDIR)/bits/scc/scc.h
        target/x86/i386.o: target/x86/../../as.h
        target/x86/i386.o: target/x86/../x86/proc.h
       -target/x86/i386tbl.o: $(INCDIR)/scc/scc/scc.h
       +target/x86/i386tbl.o: $(INCDIR)/bits/scc/mach.h
       +target/x86/i386tbl.o: $(INCDIR)/bits/scc/scc.h
        target/x86/i386tbl.o: target/x86/../../as.h
        target/x86/i386tbl.o: target/x86/../x86/proc.h
       -target/x86/ins.o: $(INCDIR)/scc/scc/scc.h
       +target/x86/ins.o: $(INCDIR)/bits/scc/mach.h
       +target/x86/ins.o: $(INCDIR)/bits/scc/scc.h
        target/x86/ins.o: target/x86/../../as.h
        target/x86/ins.o: target/x86/proc.h
 (DIR) diff --git a/src/cmd/cc/cc1/deps.mk b/src/cmd/cc/cc1/deps.mk
       @@ -1,46 +1,46 @@
        #deps
       -amd64-sysv.o: $(INCDIR)/scc/scc/scc.h
       +amd64-sysv.o: $(INCDIR)/bits/scc/scc.h
        amd64-sysv.o: cc1.h
       -arch.o: $(INCDIR)/scc/scc/scc.h
       +arch.o: $(INCDIR)/bits/scc/scc.h
        arch.o: cc1.h
       -arm64-sysv.o: $(INCDIR)/scc/scc/scc.h
       +arm64-sysv.o: $(INCDIR)/bits/scc/scc.h
        arm64-sysv.o: cc1.h
       -builtin.o: $(INCDIR)/scc/scc/scc.h
       +builtin.o: $(INCDIR)/bits/scc/scc.h
        builtin.o: cc1.h
       -code.o: $(INCDIR)/scc/scc/scc.h
       +code.o: $(INCDIR)/bits/scc/scc.h
        code.o: cc1.h
       -cpp.o: $(INCDIR)/scc/scc/cstd.h
       -cpp.o: $(INCDIR)/scc/scc/scc.h
       +cpp.o: $(INCDIR)/bits/scc/cstd.h
       +cpp.o: $(INCDIR)/bits/scc/scc.h
        cpp.o: cc1.h
       -decl.o: $(INCDIR)/scc/scc/cstd.h
       -decl.o: $(INCDIR)/scc/scc/scc.h
       +decl.o: $(INCDIR)/bits/scc/cstd.h
       +decl.o: $(INCDIR)/bits/scc/scc.h
        decl.o: cc1.h
       -error.o: $(INCDIR)/scc/scc/scc.h
       +error.o: $(INCDIR)/bits/scc/scc.h
        error.o: cc1.h
       -expr.o: $(INCDIR)/scc/scc/cstd.h
       -expr.o: $(INCDIR)/scc/scc/scc.h
       +expr.o: $(INCDIR)/bits/scc/cstd.h
       +expr.o: $(INCDIR)/bits/scc/scc.h
        expr.o: cc1.h
       -fold.o: $(INCDIR)/scc/scc/scc.h
       +fold.o: $(INCDIR)/bits/scc/scc.h
        fold.o: cc1.h
       -i386-sysv.o: $(INCDIR)/scc/scc/scc.h
       +i386-sysv.o: $(INCDIR)/bits/scc/scc.h
        i386-sysv.o: cc1.h
       -init.o: $(INCDIR)/scc/scc/cstd.h
       -init.o: $(INCDIR)/scc/scc/scc.h
       +init.o: $(INCDIR)/bits/scc/cstd.h
       +init.o: $(INCDIR)/bits/scc/scc.h
        init.o: cc1.h
       -lex.o: $(INCDIR)/scc/scc/cstd.h
       -lex.o: $(INCDIR)/scc/scc/scc.h
       +lex.o: $(INCDIR)/bits/scc/cstd.h
       +lex.o: $(INCDIR)/bits/scc/scc.h
        lex.o: cc1.h
       -main.o: $(INCDIR)/scc/scc/arg.h
       -main.o: $(INCDIR)/scc/scc/scc.h
       +main.o: $(INCDIR)/bits/scc/arg.h
       +main.o: $(INCDIR)/bits/scc/scc.h
        main.o: cc1.h
       -stmt.o: $(INCDIR)/scc/scc/cstd.h
       -stmt.o: $(INCDIR)/scc/scc/scc.h
       +stmt.o: $(INCDIR)/bits/scc/cstd.h
       +stmt.o: $(INCDIR)/bits/scc/scc.h
        stmt.o: cc1.h
       -symbol.o: $(INCDIR)/scc/scc/cstd.h
       -symbol.o: $(INCDIR)/scc/scc/scc.h
       +symbol.o: $(INCDIR)/bits/scc/cstd.h
       +symbol.o: $(INCDIR)/bits/scc/scc.h
        symbol.o: cc1.h
       -types.o: $(INCDIR)/scc/scc/cstd.h
       -types.o: $(INCDIR)/scc/scc/scc.h
       +types.o: $(INCDIR)/bits/scc/cstd.h
       +types.o: $(INCDIR)/bits/scc/scc.h
        types.o: cc1.h
       -z80-scc.o: $(INCDIR)/scc/scc/scc.h
       +z80-scc.o: $(INCDIR)/bits/scc/scc.h
        z80-scc.o: cc1.h
 (DIR) diff --git a/src/cmd/cc/cc2/Makefile b/src/cmd/cc/cc2/Makefile
       @@ -23,7 +23,7 @@ TARGET  =\
        
        all: $(TARGET)
        
       -$(TARGET): error.h
       +main.o: error.h
        
        error.h: cc2.h
                rm -f $@;\
 (DIR) diff --git a/src/cmd/cc/cc2/deps.mk b/src/cmd/cc/cc2/deps.mk
       @@ -1,63 +1,63 @@
        #deps
       -code.o: $(INCDIR)/scc/scc/scc.h
       +code.o: $(INCDIR)/bits/scc/scc.h
        code.o: cc2.h
       -main.o: $(INCDIR)/scc/scc/arg.h
       -main.o: $(INCDIR)/scc/scc/scc.h
       +main.o: $(INCDIR)/bits/scc/arg.h
       +main.o: $(INCDIR)/bits/scc/scc.h
        main.o: cc2.h
        main.o: error.h
       -node.o: $(INCDIR)/scc/scc/scc.h
       +node.o: $(INCDIR)/bits/scc/scc.h
        node.o: cc2.h
       -optm.o: $(INCDIR)/scc/scc/scc.h
       +optm.o: $(INCDIR)/bits/scc/scc.h
        optm.o: cc2.h
       -parser.o: $(INCDIR)/scc/scc/cstd.h
       -parser.o: $(INCDIR)/scc/scc/scc.h
       +parser.o: $(INCDIR)/bits/scc/cstd.h
       +parser.o: $(INCDIR)/bits/scc/scc.h
        parser.o: cc2.h
       -peep.o: $(INCDIR)/scc/scc/scc.h
       +peep.o: $(INCDIR)/bits/scc/scc.h
        peep.o: cc2.h
       -symbol.o: $(INCDIR)/scc/scc/scc.h
       +symbol.o: $(INCDIR)/bits/scc/scc.h
        symbol.o: cc2.h
       -target/amd64-sysv/cgen.o: $(INCDIR)/scc/scc/scc.h
       +target/amd64-sysv/cgen.o: $(INCDIR)/bits/scc/scc.h
        target/amd64-sysv/cgen.o: target/amd64-sysv/../../cc2.h
        target/amd64-sysv/cgen.o: target/amd64-sysv/arch.h
       -target/amd64-sysv/code.o: $(INCDIR)/scc/scc/cstd.h
       -target/amd64-sysv/code.o: $(INCDIR)/scc/scc/scc.h
       +target/amd64-sysv/code.o: $(INCDIR)/bits/scc/cstd.h
       +target/amd64-sysv/code.o: $(INCDIR)/bits/scc/scc.h
        target/amd64-sysv/code.o: target/amd64-sysv/../../cc2.h
        target/amd64-sysv/code.o: target/amd64-sysv/arch.h
       -target/amd64-sysv/optm.o: $(INCDIR)/scc/scc/scc.h
       +target/amd64-sysv/optm.o: $(INCDIR)/bits/scc/scc.h
        target/amd64-sysv/optm.o: target/amd64-sysv/../../cc2.h
       -target/amd64-sysv/types.o: $(INCDIR)/scc/scc/scc.h
       +target/amd64-sysv/types.o: $(INCDIR)/bits/scc/scc.h
        target/amd64-sysv/types.o: target/amd64-sysv/../../cc2.h
       -target/arm64-sysv/types.o: $(INCDIR)/scc/scc/scc.h
       +target/arm64-sysv/types.o: $(INCDIR)/bits/scc/scc.h
        target/arm64-sysv/types.o: target/arm64-sysv/../../cc2.h
       -target/i386-sysv/cgen.o: $(INCDIR)/scc/scc/scc.h
       +target/i386-sysv/cgen.o: $(INCDIR)/bits/scc/scc.h
        target/i386-sysv/cgen.o: target/i386-sysv/../../cc2.h
        target/i386-sysv/cgen.o: target/i386-sysv/arch.h
       -target/i386-sysv/code.o: $(INCDIR)/scc/scc/cstd.h
       -target/i386-sysv/code.o: $(INCDIR)/scc/scc/scc.h
       +target/i386-sysv/code.o: $(INCDIR)/bits/scc/cstd.h
       +target/i386-sysv/code.o: $(INCDIR)/bits/scc/scc.h
        target/i386-sysv/code.o: target/i386-sysv/../../cc2.h
        target/i386-sysv/code.o: target/i386-sysv/arch.h
       -target/i386-sysv/optm.o: $(INCDIR)/scc/scc/scc.h
       +target/i386-sysv/optm.o: $(INCDIR)/bits/scc/scc.h
        target/i386-sysv/optm.o: target/i386-sysv/../../cc2.h
       -target/i386-sysv/types.o: $(INCDIR)/scc/scc/scc.h
       +target/i386-sysv/types.o: $(INCDIR)/bits/scc/scc.h
        target/i386-sysv/types.o: target/i386-sysv/../../cc2.h
       -target/qbe/cgen.o: $(INCDIR)/scc/scc/cstd.h
       -target/qbe/cgen.o: $(INCDIR)/scc/scc/scc.h
       +target/qbe/cgen.o: $(INCDIR)/bits/scc/cstd.h
       +target/qbe/cgen.o: $(INCDIR)/bits/scc/scc.h
        target/qbe/cgen.o: target/qbe/../../cc2.h
        target/qbe/cgen.o: target/qbe/arch.h
       -target/qbe/code.o: $(INCDIR)/scc/scc/cstd.h
       -target/qbe/code.o: $(INCDIR)/scc/scc/scc.h
       +target/qbe/code.o: $(INCDIR)/bits/scc/cstd.h
       +target/qbe/code.o: $(INCDIR)/bits/scc/scc.h
        target/qbe/code.o: target/qbe/../../cc2.h
        target/qbe/code.o: target/qbe/arch.h
       -target/qbe/optm.o: $(INCDIR)/scc/scc/scc.h
       +target/qbe/optm.o: $(INCDIR)/bits/scc/scc.h
        target/qbe/optm.o: target/qbe/../../cc2.h
       -target/z80-scc/cgen.o: $(INCDIR)/scc/scc/scc.h
       +target/z80-scc/cgen.o: $(INCDIR)/bits/scc/scc.h
        target/z80-scc/cgen.o: target/z80-scc/../../cc2.h
        target/z80-scc/cgen.o: target/z80-scc/arch.h
       -target/z80-scc/code.o: $(INCDIR)/scc/scc/cstd.h
       -target/z80-scc/code.o: $(INCDIR)/scc/scc/scc.h
       +target/z80-scc/code.o: $(INCDIR)/bits/scc/cstd.h
       +target/z80-scc/code.o: $(INCDIR)/bits/scc/scc.h
        target/z80-scc/code.o: target/z80-scc/../../cc2.h
        target/z80-scc/code.o: target/z80-scc/arch.h
       -target/z80-scc/optm.o: $(INCDIR)/scc/scc/scc.h
       +target/z80-scc/optm.o: $(INCDIR)/bits/scc/scc.h
        target/z80-scc/optm.o: target/z80-scc/../../cc2.h
       -target/z80-scc/types.o: $(INCDIR)/scc/scc/scc.h
       +target/z80-scc/types.o: $(INCDIR)/bits/scc/scc.h
        target/z80-scc/types.o: target/z80-scc/../../cc2.h
 (DIR) diff --git a/src/cmd/cc/posix/deps.mk b/src/cmd/cc/posix/deps.mk
       @@ -1,5 +1,5 @@
        #deps
       -cc.o: $(INCDIR)/scc/scc/arg.h
       -cc.o: $(INCDIR)/scc/scc/config.h
       -cc.o: $(INCDIR)/scc/scc/scc.h
       -cc.o: $(INCDIR)/scc/scc/sys.h
       +cc.o: $(INCDIR)/bits/scc/arg.h
       +cc.o: $(INCDIR)/bits/scc/config.h
       +cc.o: $(INCDIR)/bits/scc/scc.h
       +cc.o: $(INCDIR)/bits/scc/sys.h
 (DIR) diff --git a/src/cmd/deps.mk b/src/cmd/deps.mk
       @@ -1,203 +1,230 @@
        #deps
       -addr2line.o: $(INCDIR)/scc/scc/arg.h
       -addr2line.o: $(INCDIR)/scc/scc/mach.h
       -ar.o: $(INCDIR)/scc/scc/ar.h
       -ar.o: $(INCDIR)/scc/scc/arg.h
       -as/expr.o: $(INCDIR)/scc/scc/scc.h
       +addr2line.o: $(INCDIR)/bits/scc/arg.h
       +addr2line.o: $(INCDIR)/bits/scc/mach.h
       +ar.o: $(INCDIR)/bits/scc/ar.h
       +ar.o: $(INCDIR)/bits/scc/arg.h
       +ar.o: $(INCDIR)/bits/scc/scc.h
       +as/as.o: $(INCDIR)/bits/scc/arg.h
       +as/as.o: $(INCDIR)/bits/scc/config.h
       +as/as.o: $(INCDIR)/bits/scc/scc.h
       +as/expr.o: $(INCDIR)/bits/scc/mach.h
       +as/expr.o: $(INCDIR)/bits/scc/scc.h
        as/expr.o: as/as.h
       -as/ins.o: $(INCDIR)/scc/scc/scc.h
       +as/ins.o: $(INCDIR)/bits/scc/mach.h
       +as/ins.o: $(INCDIR)/bits/scc/scc.h
        as/ins.o: as/as.h
       -as/main.o: $(INCDIR)/scc/scc/arg.h
       -as/main.o: $(INCDIR)/scc/scc/scc.h
       +as/main.o: $(INCDIR)/bits/scc/arg.h
       +as/main.o: $(INCDIR)/bits/scc/mach.h
       +as/main.o: $(INCDIR)/bits/scc/scc.h
        as/main.o: as/as.h
       -as/parser.o: $(INCDIR)/scc/scc/cstd.h
       -as/parser.o: $(INCDIR)/scc/scc/scc.h
       +as/parser.o: $(INCDIR)/bits/scc/cstd.h
       +as/parser.o: $(INCDIR)/bits/scc/mach.h
       +as/parser.o: $(INCDIR)/bits/scc/scc.h
        as/parser.o: as/as.h
       -as/symbol.o: $(INCDIR)/scc/scc/scc.h
       +as/symbol.o: $(INCDIR)/bits/scc/cstd.h
       +as/symbol.o: $(INCDIR)/bits/scc/mach.h
       +as/symbol.o: $(INCDIR)/bits/scc/scc.h
        as/symbol.o: as/as.h
       -as/target/powerpc/ins.o: $(INCDIR)/scc/scc/scc.h
       +as/target/powerpc/ins.o: $(INCDIR)/bits/scc/mach.h
       +as/target/powerpc/ins.o: $(INCDIR)/bits/scc/scc.h
        as/target/powerpc/ins.o: as/target/powerpc/../../as.h
        as/target/powerpc/ins.o: as/target/powerpc/proc.h
       -as/target/powerpc/powerpc.o: $(INCDIR)/scc/scc/scc.h
       +as/target/powerpc/powerpc.o: $(INCDIR)/bits/scc/mach.h
       +as/target/powerpc/powerpc.o: $(INCDIR)/bits/scc/scc.h
        as/target/powerpc/powerpc.o: as/target/powerpc/../../as.h
        as/target/powerpc/powerpc.o: as/target/powerpc/proc.h
       -as/target/powerpc/powerpc64.o: $(INCDIR)/scc/scc/scc.h
       +as/target/powerpc/powerpc64.o: $(INCDIR)/bits/scc/mach.h
       +as/target/powerpc/powerpc64.o: $(INCDIR)/bits/scc/scc.h
        as/target/powerpc/powerpc64.o: as/target/powerpc/../../as.h
        as/target/powerpc/powerpc64.o: as/target/powerpc/proc.h
       -as/target/powerpc/powerpc64tbl.o: $(INCDIR)/scc/scc/scc.h
       +as/target/powerpc/powerpc64tbl.o: $(INCDIR)/bits/scc/mach.h
       +as/target/powerpc/powerpc64tbl.o: $(INCDIR)/bits/scc/scc.h
        as/target/powerpc/powerpc64tbl.o: as/target/powerpc/../../as.h
        as/target/powerpc/powerpc64tbl.o: as/target/powerpc/../powerpc/proc.h
       -as/target/powerpc/powerpctbl.o: $(INCDIR)/scc/scc/scc.h
       +as/target/powerpc/powerpctbl.o: $(INCDIR)/bits/scc/mach.h
       +as/target/powerpc/powerpctbl.o: $(INCDIR)/bits/scc/scc.h
        as/target/powerpc/powerpctbl.o: as/target/powerpc/../../as.h
        as/target/powerpc/powerpctbl.o: as/target/powerpc/../powerpc/proc.h
       -as/target/x80/ins.o: $(INCDIR)/scc/scc/scc.h
       +as/target/x80/ins.o: $(INCDIR)/bits/scc/mach.h
       +as/target/x80/ins.o: $(INCDIR)/bits/scc/scc.h
        as/target/x80/ins.o: as/target/x80/../../as.h
        as/target/x80/ins.o: as/target/x80/proc.h
       -as/target/x80/z80.o: $(INCDIR)/scc/scc/scc.h
       +as/target/x80/z80.o: $(INCDIR)/bits/scc/mach.h
       +as/target/x80/z80.o: $(INCDIR)/bits/scc/scc.h
        as/target/x80/z80.o: as/target/x80/../../as.h
        as/target/x80/z80.o: as/target/x80/../x80/proc.h
       -as/target/x80/z80tbl.o: $(INCDIR)/scc/scc/scc.h
       +as/target/x80/z80tbl.o: $(INCDIR)/bits/scc/mach.h
       +as/target/x80/z80tbl.o: $(INCDIR)/bits/scc/scc.h
        as/target/x80/z80tbl.o: as/target/x80/../../as.h
        as/target/x80/z80tbl.o: as/target/x80/../x80/proc.h
       -as/target/x86/amd64.o: $(INCDIR)/scc/scc/scc.h
       +as/target/x86/amd64.o: $(INCDIR)/bits/scc/mach.h
       +as/target/x86/amd64.o: $(INCDIR)/bits/scc/scc.h
        as/target/x86/amd64.o: as/target/x86/../../as.h
       -as/target/x86/amd64tbl.o: $(INCDIR)/scc/scc/scc.h
       +as/target/x86/amd64tbl.o: $(INCDIR)/bits/scc/mach.h
       +as/target/x86/amd64tbl.o: $(INCDIR)/bits/scc/scc.h
        as/target/x86/amd64tbl.o: as/target/x86/../../as.h
        as/target/x86/amd64tbl.o: as/target/x86/../x86/proc.h
       -as/target/x86/i286.o: $(INCDIR)/scc/scc/scc.h
       +as/target/x86/i286.o: $(INCDIR)/bits/scc/mach.h
       +as/target/x86/i286.o: $(INCDIR)/bits/scc/scc.h
        as/target/x86/i286.o: as/target/x86/../../as.h
        as/target/x86/i286.o: as/target/x86/../x86/proc.h
       -as/target/x86/i286tbl.o: $(INCDIR)/scc/scc/scc.h
       +as/target/x86/i286tbl.o: $(INCDIR)/bits/scc/mach.h
       +as/target/x86/i286tbl.o: $(INCDIR)/bits/scc/scc.h
        as/target/x86/i286tbl.o: as/target/x86/../../as.h
        as/target/x86/i286tbl.o: as/target/x86/../x86/proc.h
       -as/target/x86/i386.o: $(INCDIR)/scc/scc/scc.h
       +as/target/x86/i386.o: $(INCDIR)/bits/scc/mach.h
       +as/target/x86/i386.o: $(INCDIR)/bits/scc/scc.h
        as/target/x86/i386.o: as/target/x86/../../as.h
        as/target/x86/i386.o: as/target/x86/../x86/proc.h
       -as/target/x86/i386tbl.o: $(INCDIR)/scc/scc/scc.h
       +as/target/x86/i386tbl.o: $(INCDIR)/bits/scc/mach.h
       +as/target/x86/i386tbl.o: $(INCDIR)/bits/scc/scc.h
        as/target/x86/i386tbl.o: as/target/x86/../../as.h
        as/target/x86/i386tbl.o: as/target/x86/../x86/proc.h
       -as/target/x86/ins.o: $(INCDIR)/scc/scc/scc.h
       +as/target/x86/ins.o: $(INCDIR)/bits/scc/mach.h
       +as/target/x86/ins.o: $(INCDIR)/bits/scc/scc.h
        as/target/x86/ins.o: as/target/x86/../../as.h
        as/target/x86/ins.o: as/target/x86/proc.h
       -cc/cc1/amd64-sysv.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/amd64-sysv.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/amd64-sysv.o: cc/cc1/cc1.h
       -cc/cc1/arch.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/arch.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/arch.o: cc/cc1/cc1.h
       -cc/cc1/arm64-sysv.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/arm64-sysv.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/arm64-sysv.o: cc/cc1/cc1.h
       -cc/cc1/builtin.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/builtin.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/builtin.o: cc/cc1/cc1.h
       -cc/cc1/code.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/code.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/code.o: cc/cc1/cc1.h
       -cc/cc1/cpp.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc1/cpp.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/cpp.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc1/cpp.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/cpp.o: cc/cc1/cc1.h
       -cc/cc1/decl.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc1/decl.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/decl.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc1/decl.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/decl.o: cc/cc1/cc1.h
       -cc/cc1/error.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/error.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/error.o: cc/cc1/cc1.h
       -cc/cc1/expr.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc1/expr.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/expr.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc1/expr.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/expr.o: cc/cc1/cc1.h
       -cc/cc1/fold.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/fold.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/fold.o: cc/cc1/cc1.h
       -cc/cc1/i386-sysv.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/i386-sysv.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/i386-sysv.o: cc/cc1/cc1.h
       -cc/cc1/init.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc1/init.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/init.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc1/init.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/init.o: cc/cc1/cc1.h
       -cc/cc1/lex.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc1/lex.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/lex.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc1/lex.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/lex.o: cc/cc1/cc1.h
       -cc/cc1/main.o: $(INCDIR)/scc/scc/arg.h
       -cc/cc1/main.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/main.o: $(INCDIR)/bits/scc/arg.h
       +cc/cc1/main.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/main.o: cc/cc1/cc1.h
       -cc/cc1/stmt.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc1/stmt.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/stmt.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc1/stmt.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/stmt.o: cc/cc1/cc1.h
       -cc/cc1/symbol.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc1/symbol.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/symbol.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc1/symbol.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/symbol.o: cc/cc1/cc1.h
       -cc/cc1/types.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc1/types.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/types.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc1/types.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/types.o: cc/cc1/cc1.h
       -cc/cc1/z80-scc.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc1/z80-scc.o: $(INCDIR)/bits/scc/scc.h
        cc/cc1/z80-scc.o: cc/cc1/cc1.h
       -cc/cc2/code.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/code.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/code.o: cc/cc2/cc2.h
       -cc/cc2/main.o: $(INCDIR)/scc/scc/arg.h
       -cc/cc2/main.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/main.o: $(INCDIR)/bits/scc/arg.h
       +cc/cc2/main.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/main.o: cc/cc2/cc2.h
        cc/cc2/main.o: cc/cc2/error.h
       -cc/cc2/node.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/node.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/node.o: cc/cc2/cc2.h
       -cc/cc2/optm.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/optm.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/optm.o: cc/cc2/cc2.h
       -cc/cc2/parser.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc2/parser.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/parser.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc2/parser.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/parser.o: cc/cc2/cc2.h
       -cc/cc2/peep.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/peep.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/peep.o: cc/cc2/cc2.h
       -cc/cc2/symbol.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/symbol.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/symbol.o: cc/cc2/cc2.h
       -cc/cc2/target/amd64-sysv/cgen.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/amd64-sysv/cgen.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/amd64-sysv/cgen.o: cc/cc2/target/amd64-sysv/../../cc2.h
        cc/cc2/target/amd64-sysv/cgen.o: cc/cc2/target/amd64-sysv/arch.h
       -cc/cc2/target/amd64-sysv/code.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc2/target/amd64-sysv/code.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/amd64-sysv/code.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc2/target/amd64-sysv/code.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/amd64-sysv/code.o: cc/cc2/target/amd64-sysv/../../cc2.h
        cc/cc2/target/amd64-sysv/code.o: cc/cc2/target/amd64-sysv/arch.h
       -cc/cc2/target/amd64-sysv/optm.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/amd64-sysv/optm.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/amd64-sysv/optm.o: cc/cc2/target/amd64-sysv/../../cc2.h
       -cc/cc2/target/amd64-sysv/types.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/amd64-sysv/types.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/amd64-sysv/types.o: cc/cc2/target/amd64-sysv/../../cc2.h
       -cc/cc2/target/arm64-sysv/types.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/arm64-sysv/types.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/arm64-sysv/types.o: cc/cc2/target/arm64-sysv/../../cc2.h
       -cc/cc2/target/i386-sysv/cgen.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/i386-sysv/cgen.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/i386-sysv/cgen.o: cc/cc2/target/i386-sysv/../../cc2.h
        cc/cc2/target/i386-sysv/cgen.o: cc/cc2/target/i386-sysv/arch.h
       -cc/cc2/target/i386-sysv/code.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc2/target/i386-sysv/code.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/i386-sysv/code.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc2/target/i386-sysv/code.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/i386-sysv/code.o: cc/cc2/target/i386-sysv/../../cc2.h
        cc/cc2/target/i386-sysv/code.o: cc/cc2/target/i386-sysv/arch.h
       -cc/cc2/target/i386-sysv/optm.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/i386-sysv/optm.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/i386-sysv/optm.o: cc/cc2/target/i386-sysv/../../cc2.h
       -cc/cc2/target/i386-sysv/types.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/i386-sysv/types.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/i386-sysv/types.o: cc/cc2/target/i386-sysv/../../cc2.h
       -cc/cc2/target/qbe/cgen.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc2/target/qbe/cgen.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/qbe/cgen.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc2/target/qbe/cgen.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/qbe/cgen.o: cc/cc2/target/qbe/../../cc2.h
        cc/cc2/target/qbe/cgen.o: cc/cc2/target/qbe/arch.h
       -cc/cc2/target/qbe/code.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc2/target/qbe/code.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/qbe/code.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc2/target/qbe/code.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/qbe/code.o: cc/cc2/target/qbe/../../cc2.h
        cc/cc2/target/qbe/code.o: cc/cc2/target/qbe/arch.h
       -cc/cc2/target/qbe/optm.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/qbe/optm.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/qbe/optm.o: cc/cc2/target/qbe/../../cc2.h
       -cc/cc2/target/z80-scc/cgen.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/z80-scc/cgen.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/z80-scc/cgen.o: cc/cc2/target/z80-scc/../../cc2.h
        cc/cc2/target/z80-scc/cgen.o: cc/cc2/target/z80-scc/arch.h
       -cc/cc2/target/z80-scc/code.o: $(INCDIR)/scc/scc/cstd.h
       -cc/cc2/target/z80-scc/code.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/z80-scc/code.o: $(INCDIR)/bits/scc/cstd.h
       +cc/cc2/target/z80-scc/code.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/z80-scc/code.o: cc/cc2/target/z80-scc/../../cc2.h
        cc/cc2/target/z80-scc/code.o: cc/cc2/target/z80-scc/arch.h
       -cc/cc2/target/z80-scc/optm.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/z80-scc/optm.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/z80-scc/optm.o: cc/cc2/target/z80-scc/../../cc2.h
       -cc/cc2/target/z80-scc/types.o: $(INCDIR)/scc/scc/scc.h
       +cc/cc2/target/z80-scc/types.o: $(INCDIR)/bits/scc/scc.h
        cc/cc2/target/z80-scc/types.o: cc/cc2/target/z80-scc/../../cc2.h
       -cc/posix/cc.o: $(INCDIR)/scc/scc/arg.h
       -cc/posix/cc.o: $(INCDIR)/scc/scc/ldflags.h
       -cc/posix/cc.o: $(INCDIR)/scc/scc/scc.h
       -cc/posix/cc.o: $(INCDIR)/scc/scc/syscrts.h
       -cc/posix/cc.o: $(INCDIR)/scc/scc/sysincludes.h
       -cc/posix/cc.o: $(INCDIR)/scc/scc/syslibs.h
       -cc/posix/cc.o: cc/posix/config.h
       -ld/main.o: $(INCDIR)/scc/scc/mach.h
       +cc/posix/cc.o: $(INCDIR)/bits/scc/arg.h
       +cc/posix/cc.o: $(INCDIR)/bits/scc/config.h
       +cc/posix/cc.o: $(INCDIR)/bits/scc/scc.h
       +cc/posix/cc.o: $(INCDIR)/bits/scc/sys.h
       +ld/main.o: $(INCDIR)/bits/scc/mach.h
        ld/main.o: ld/ld.h
       -ld/pass1.o: $(INCDIR)/scc/scc/ar.h
       -ld/pass1.o: $(INCDIR)/scc/scc/mach.h
       -ld/pass1.o: $(INCDIR)/scc/scc/scc.h
       +ld/pass1.o: $(INCDIR)/bits/scc/ar.h
       +ld/pass1.o: $(INCDIR)/bits/scc/mach.h
       +ld/pass1.o: $(INCDIR)/bits/scc/scc.h
        ld/pass1.o: ld/ld.h
       -ld/pass2.o: $(INCDIR)/scc/scc/mach.h
       +ld/pass2.o: $(INCDIR)/bits/scc/mach.h
        ld/pass2.o: ld/ld.h
       -ld/pass3.o: $(INCDIR)/scc/scc/mach.h
       +ld/pass3.o: $(INCDIR)/bits/scc/mach.h
        ld/pass3.o: ld/ld.h
       -ld/pass4.o: $(INCDIR)/scc/scc/mach.h
       +ld/pass4.o: $(INCDIR)/bits/scc/mach.h
        ld/pass4.o: ld/ld.h
       -ld/pass5.o: $(INCDIR)/scc/scc/mach.h
       +ld/pass5.o: $(INCDIR)/bits/scc/mach.h
        ld/pass5.o: ld/ld.h
       -ld/section.o: $(INCDIR)/scc/scc/mach.h
       -ld/section.o: $(INCDIR)/scc/scc/scc.h
       +ld/section.o: $(INCDIR)/bits/scc/mach.h
       +ld/section.o: $(INCDIR)/bits/scc/scc.h
        ld/section.o: ld/ld.h
       -ld/symbol.o: $(INCDIR)/scc/scc/mach.h
       -ld/symbol.o: $(INCDIR)/scc/scc/scc.h
       +ld/symbol.o: $(INCDIR)/bits/scc/mach.h
       +ld/symbol.o: $(INCDIR)/bits/scc/scc.h
        ld/symbol.o: ld/ld.h
       -nm.o: $(INCDIR)/scc/scc/ar.h
       -nm.o: $(INCDIR)/scc/scc/arg.h
       -nm.o: $(INCDIR)/scc/scc/mach.h
       -objdump.o: $(INCDIR)/scc/scc/arg.h
       -objdump.o: $(INCDIR)/scc/scc/mach.h
       +make/main.o: make/make.h
       +make/parser.o: make/make.h
       +make/posix.o: make/make.h
       +make/rules.o: make/make.h
       +nm.o: $(INCDIR)/bits/scc/ar.h
       +nm.o: $(INCDIR)/bits/scc/arg.h
       +nm.o: $(INCDIR)/bits/scc/mach.h
       +objdump.o: $(INCDIR)/bits/scc/arg.h
       +objdump.o: $(INCDIR)/bits/scc/mach.h
       +qbe/abi.o: qbe/all.h
        qbe/alias.o: qbe/all.h
        qbe/amd64/emit.o: qbe/amd64/all.h
        qbe/amd64/isel.o: qbe/amd64/all.h
       @@ -209,8 +236,8 @@ qbe/arm64/isel.o: qbe/arm64/all.h
        qbe/arm64/targ.o: qbe/arm64/all.h
        qbe/cfg.o: qbe/all.h
        qbe/copy.o: qbe/all.h
       +qbe/emit.o: qbe/all.h
        qbe/fold.o: qbe/all.h
       -qbe/gas.o: qbe/all.h
        qbe/live.o: qbe/all.h
        qbe/load.o: qbe/all.h
        qbe/main.o: qbe/all.h
       @@ -218,16 +245,22 @@ qbe/main.o: qbe/config.h
        qbe/mem.o: qbe/all.h
        qbe/parse.o: qbe/all.h
        qbe/rega.o: qbe/all.h
       +qbe/rv64/abi.o: qbe/rv64/all.h
       +qbe/rv64/emit.o: qbe/rv64/all.h
       +qbe/rv64/isel.o: qbe/rv64/all.h
       +qbe/rv64/targ.o: qbe/rv64/../ops.h
       +qbe/rv64/targ.o: qbe/rv64/all.h
       +qbe/simpl.o: qbe/all.h
        qbe/spill.o: qbe/all.h
        qbe/ssa.o: qbe/all.h
        qbe/tools/pmov.o: qbe/tools/../../rega.c
        qbe/util.o: qbe/all.h
       -ranlib.o: $(INCDIR)/scc/scc/ar.h
       -ranlib.o: $(INCDIR)/scc/scc/arg.h
       -ranlib.o: $(INCDIR)/scc/scc/mach.h
       -ranlib.o: $(INCDIR)/scc/scc/scc.h
       -size.o: $(INCDIR)/scc/scc/ar.h
       -size.o: $(INCDIR)/scc/scc/arg.h
       -size.o: $(INCDIR)/scc/scc/mach.h
       -strip.o: $(INCDIR)/scc/scc/arg.h
       -strip.o: $(INCDIR)/scc/scc/mach.h
       +ranlib.o: $(INCDIR)/bits/scc/ar.h
       +ranlib.o: $(INCDIR)/bits/scc/arg.h
       +ranlib.o: $(INCDIR)/bits/scc/mach.h
       +ranlib.o: $(INCDIR)/bits/scc/scc.h
       +size.o: $(INCDIR)/bits/scc/ar.h
       +size.o: $(INCDIR)/bits/scc/arg.h
       +size.o: $(INCDIR)/bits/scc/mach.h
       +strip.o: $(INCDIR)/bits/scc/arg.h
       +strip.o: $(INCDIR)/bits/scc/mach.h
 (DIR) diff --git a/src/cmd/ld/deps.mk b/src/cmd/ld/deps.mk
       @@ -1,21 +1,21 @@
        #deps
       -main.o: $(INCDIR)/scc/scc/mach.h
       +main.o: $(INCDIR)/bits/scc/mach.h
        main.o: ld.h
       -pass1.o: $(INCDIR)/scc/scc/ar.h
       -pass1.o: $(INCDIR)/scc/scc/mach.h
       -pass1.o: $(INCDIR)/scc/scc/scc.h
       +pass1.o: $(INCDIR)/bits/scc/ar.h
       +pass1.o: $(INCDIR)/bits/scc/mach.h
       +pass1.o: $(INCDIR)/bits/scc/scc.h
        pass1.o: ld.h
       -pass2.o: $(INCDIR)/scc/scc/mach.h
       +pass2.o: $(INCDIR)/bits/scc/mach.h
        pass2.o: ld.h
       -pass3.o: $(INCDIR)/scc/scc/mach.h
       +pass3.o: $(INCDIR)/bits/scc/mach.h
        pass3.o: ld.h
       -pass4.o: $(INCDIR)/scc/scc/mach.h
       +pass4.o: $(INCDIR)/bits/scc/mach.h
        pass4.o: ld.h
       -pass5.o: $(INCDIR)/scc/scc/mach.h
       +pass5.o: $(INCDIR)/bits/scc/mach.h
        pass5.o: ld.h
       -section.o: $(INCDIR)/scc/scc/mach.h
       -section.o: $(INCDIR)/scc/scc/scc.h
       +section.o: $(INCDIR)/bits/scc/mach.h
       +section.o: $(INCDIR)/bits/scc/scc.h
        section.o: ld.h
       -symbol.o: $(INCDIR)/scc/scc/mach.h
       -symbol.o: $(INCDIR)/scc/scc/scc.h
       +symbol.o: $(INCDIR)/bits/scc/mach.h
       +symbol.o: $(INCDIR)/bits/scc/scc.h
        symbol.o: ld.h
 (DIR) diff --git a/src/libc/arch/linux/deps.mk b/src/libc/arch/linux/deps.mk
       @@ -5,3 +5,4 @@ _brk.o: brk.h
        _getheap.o: ../../libc.h
        _getheap.o: ../../syscall.h
        _getheap.o: brk.h
       +_waitpid.o: ../bsd/_waitpid.c
 (DIR) diff --git a/src/libc/arch/posix/deps.mk b/src/libc/arch/posix/deps.mk
       @@ -4,4 +4,6 @@ _open.o: ../../syscall.h
        _systime.o: ../../libc.h
        _tzone.o: ../../libc.h
        clock.o: time.h
       +system.o: ../../syscall.h
        time.o: time.h
       +tmpfile.o: ../../syscall.h
 (DIR) diff --git a/src/libc/inttypes/deps.mk b/src/libc/inttypes/deps.mk
       @@ -0,0 +1,3 @@
       +#deps
       +strtoimax.o: ../libc.h
       +strtoumax.o: ../libc.h
 (DIR) diff --git a/src/libc/stdio/deps.mk b/src/libc/stdio/deps.mk
       @@ -17,5 +17,7 @@ fseek.o: ../libc.h
        fseek.o: ../syscall.h
        ftell.o: ../syscall.h
        remove.o: ../syscall.h
       +rename.o: ../syscall.h
        setvbuf.o: ../libc.h
        tmpnam.o: ../syscall.h
       +vfprintf.o: ../libc.h
 (DIR) diff --git a/src/libc/stdlib/deps.mk b/src/libc/stdlib/deps.mk
       @@ -1,10 +1,12 @@
        #deps
        _Exit.o: ../syscall.h
       +_dtoi.o: ../libc.h
        atexit.o: ../libc.h
        atoi.o: ../libc.h
        atol.o: ../libc.h
        atoll.o: ../libc.h
        exit.o: ../libc.h
       +exit.o: ../syscall.h
        malloc.o: ../libc.h
        malloc.o: ../syscall.h
        malloc.o: malloc.h
 (DIR) diff --git a/src/libc/wchar/deps.mk b/src/libc/wchar/deps.mk
       @@ -1 +1,4 @@
        #deps
       +_validutf8.o: ../libc.h
       +mbrtowc.o: ../libc.h
       +wcrtomb.o: ../libc.h
 (DIR) diff --git a/src/libmach/deps.mk b/src/libmach/deps.mk
       @@ -1,111 +1,142 @@
        #deps
       -archive.o: $(INCDIR)/scc/scc/ar.h
       -archive.o: $(INCDIR)/scc/scc/mach.h
       +archive.o: $(INCDIR)/bits/scc/ar.h
       +archive.o: $(INCDIR)/bits/scc/mach.h
        archive.o: libmach.h
       -armember.o: $(INCDIR)/scc/scc/ar.h
       -armember.o: $(INCDIR)/scc/scc/mach.h
       -coff32/coff32.o: $(INCDIR)/scc/scc/mach.h
       +armember.o: $(INCDIR)/bits/scc/ar.h
       +armember.o: $(INCDIR)/bits/scc/mach.h
       +coff32/coff32.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32.o: coff32/../libmach.h
        coff32/coff32.o: coff32/coff32.h
       -coff32/coff32del.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32archs.o: $(INCDIR)/bits/scc/mach.h
       +coff32/coff32archs.o: coff32/../libmach.h
       +coff32/coff32archs.o: coff32/coff32.h
       +coff32/coff32del.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32del.o: coff32/../libmach.h
        coff32/coff32del.o: coff32/coff32.h
       -coff32/coff32getidx.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32getidx.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32getidx.o: coff32/../libmach.h
        coff32/coff32getidx.o: coff32/coff32.h
       -coff32/coff32getsec.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32getsec.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32getsec.o: coff32/../libmach.h
        coff32/coff32getsec.o: coff32/coff32.h
       -coff32/coff32getsym.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32getsym.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32getsym.o: coff32/../libmach.h
        coff32/coff32getsym.o: coff32/coff32.h
       -coff32/coff32loadmap.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32loadmap.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32loadmap.o: coff32/../libmach.h
        coff32/coff32loadmap.o: coff32/coff32.h
       -coff32/coff32new.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32new.o: $(INCDIR)/bits/scc/mach.h
       +coff32/coff32new.o: $(INCDIR)/bits/scc/scc.h
        coff32/coff32new.o: coff32/../libmach.h
        coff32/coff32new.o: coff32/coff32.h
       -coff32/coff32pc2line.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32pc2line.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32pc2line.o: coff32/../libmach.h
       -coff32/coff32probe.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32probe.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32probe.o: coff32/../libmach.h
        coff32/coff32probe.o: coff32/coff32.h
       -coff32/coff32read.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32read.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32read.o: coff32/../libmach.h
        coff32/coff32read.o: coff32/coff32.h
       -coff32/coff32setidx.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32setidx.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32setidx.o: coff32/../libmach.h
        coff32/coff32setidx.o: coff32/coff32.h
       -coff32/coff32strip.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32setsec.o: $(INCDIR)/bits/scc/mach.h
       +coff32/coff32setsec.o: coff32/../libmach.h
       +coff32/coff32setsec.o: coff32/coff32.h
       +coff32/coff32setsym.o: $(INCDIR)/bits/scc/mach.h
       +coff32/coff32setsym.o: coff32/../libmach.h
       +coff32/coff32setsym.o: coff32/coff32.h
       +coff32/coff32strip.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32strip.o: coff32/../libmach.h
        coff32/coff32strip.o: coff32/coff32.h
       -coff32/coff32write.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32type.o: $(INCDIR)/bits/scc/mach.h
       +coff32/coff32type.o: coff32/../libmach.h
       +coff32/coff32type.o: coff32/coff32.h
       +coff32/coff32write.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32write.o: coff32/../libmach.h
        coff32/coff32write.o: coff32/coff32.h
       -coff32/coff32xgetidx.o: $(INCDIR)/scc/scc/cstd.h
       -coff32/coff32xgetidx.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32xgetidx.o: $(INCDIR)/bits/scc/cstd.h
       +coff32/coff32xgetidx.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32xgetidx.o: coff32/../libmach.h
        coff32/coff32xgetidx.o: coff32/coff32.h
       -coff32/coff32xsetidx.o: $(INCDIR)/scc/scc/mach.h
       +coff32/coff32xsetidx.o: $(INCDIR)/bits/scc/mach.h
        coff32/coff32xsetidx.o: coff32/../libmach.h
       -delobj.o: $(INCDIR)/scc/scc/mach.h
       +delobj.o: $(INCDIR)/bits/scc/mach.h
        delobj.o: libmach.h
       -elf64/elf64.o: $(INCDIR)/scc/scc/mach.h
       +elf64/elf64.o: $(INCDIR)/bits/scc/mach.h
        elf64/elf64.o: elf64/../libmach.h
        elf64/elf64.o: elf64/elf64.h
       -elf64/elf64del.o: $(INCDIR)/scc/scc/mach.h
       +elf64/elf64archs.o: $(INCDIR)/bits/scc/mach.h
       +elf64/elf64archs.o: elf64/../libmach.h
       +elf64/elf64archs.o: elf64/elf64.h
       +elf64/elf64del.o: $(INCDIR)/bits/scc/mach.h
        elf64/elf64del.o: elf64/../libmach.h
        elf64/elf64del.o: elf64/elf64.h
       -elf64/elf64getsec.o: $(INCDIR)/scc/scc/mach.h
       +elf64/elf64getsec.o: $(INCDIR)/bits/scc/mach.h
        elf64/elf64getsec.o: elf64/../libmach.h
        elf64/elf64getsec.o: elf64/elf64.h
       -elf64/elf64getsym.o: $(INCDIR)/scc/scc/mach.h
       +elf64/elf64getsym.o: $(INCDIR)/bits/scc/mach.h
        elf64/elf64getsym.o: elf64/../libmach.h
        elf64/elf64getsym.o: elf64/elf64.h
       -elf64/elf64new.o: $(INCDIR)/scc/scc/mach.h
       +elf64/elf64new.o: $(INCDIR)/bits/scc/mach.h
        elf64/elf64new.o: elf64/../libmach.h
        elf64/elf64new.o: elf64/elf64.h
       -elf64/elf64probe.o: $(INCDIR)/scc/scc/mach.h
       +elf64/elf64probe.o: $(INCDIR)/bits/scc/mach.h
        elf64/elf64probe.o: elf64/../libmach.h
        elf64/elf64probe.o: elf64/elf64.h
       -elf64/elf64read.o: $(INCDIR)/scc/scc/mach.h
       +elf64/elf64read.o: $(INCDIR)/bits/scc/mach.h
        elf64/elf64read.o: elf64/../libmach.h
        elf64/elf64read.o: elf64/elf64.h
       -findsec.o: $(INCDIR)/scc/scc/mach.h
       +elf64/elf64strip.o: $(INCDIR)/bits/scc/mach.h
       +elf64/elf64strip.o: elf64/../libmach.h
       +elf64/elf64strip.o: elf64/elf64.h
       +elf64/elf64type.o: $(INCDIR)/bits/scc/mach.h
       +elf64/elf64type.o: elf64/../libmach.h
       +elf64/elf64type.o: elf64/elf64.h
       +elf64/elf64write.o: $(INCDIR)/bits/scc/mach.h
       +elf64/elf64write.o: elf64/../libmach.h
       +elf64/elf64write.o: elf64/elf64.h
       +findsec.o: $(INCDIR)/bits/scc/mach.h
        findsec.o: libmach.h
       -getindex.o: $(INCDIR)/scc/scc/mach.h
       +getindex.o: $(INCDIR)/bits/scc/mach.h
        getindex.o: libmach.h
       -getsec.o: $(INCDIR)/scc/scc/mach.h
       +getsec.o: $(INCDIR)/bits/scc/mach.h
        getsec.o: libmach.h
       -getsym.o: $(INCDIR)/scc/scc/mach.h
       +getsym.o: $(INCDIR)/bits/scc/mach.h
        getsym.o: libmach.h
       -loadmap.o: $(INCDIR)/scc/scc/mach.h
       +loadmap.o: $(INCDIR)/bits/scc/mach.h
        loadmap.o: libmach.h
       -mach.o: $(INCDIR)/scc/scc/mach.h
       +mach.o: $(INCDIR)/bits/scc/mach.h
        mach.o: libmach.h
       -newmap.o: $(INCDIR)/scc/scc/mach.h
       +newmap.o: $(INCDIR)/bits/scc/mach.h
        newmap.o: libmach.h
       -newobj.o: $(INCDIR)/scc/scc/mach.h
       +newobj.o: $(INCDIR)/bits/scc/mach.h
        newobj.o: libmach.h
       -objpos.o: $(INCDIR)/scc/scc/mach.h
       +objpos.o: $(INCDIR)/bits/scc/mach.h
        objpos.o: libmach.h
       -objprobe.o: $(INCDIR)/scc/scc/mach.h
       +objprobe.o: $(INCDIR)/bits/scc/mach.h
        objprobe.o: libmach.h
       -pack.o: $(INCDIR)/scc/scc/mach.h
       +objtype.o: $(INCDIR)/bits/scc/mach.h
       +objtype.o: libmach.h
       +pack.o: $(INCDIR)/bits/scc/mach.h
        pack.o: libmach.h
       -pc2line.o: $(INCDIR)/scc/scc/mach.h
       +pc2line.o: $(INCDIR)/bits/scc/mach.h
        pc2line.o: libmach.h
       -readobj.o: $(INCDIR)/scc/scc/mach.h
       +readobj.o: $(INCDIR)/bits/scc/mach.h
        readobj.o: libmach.h
       -rebase.o: $(INCDIR)/scc/scc/mach.h
       +rebase.o: $(INCDIR)/bits/scc/mach.h
        rebase.o: libmach.h
       -setindex.o: $(INCDIR)/scc/scc/mach.h
       +setindex.o: $(INCDIR)/bits/scc/mach.h
        setindex.o: libmach.h
       -setmap.o: $(INCDIR)/scc/scc/mach.h
       +setmap.o: $(INCDIR)/bits/scc/mach.h
        setmap.o: libmach.h
       -strip.o: $(INCDIR)/scc/scc/mach.h
       +setsec.o: $(INCDIR)/bits/scc/mach.h
       +setsec.o: libmach.h
       +setsym.o: $(INCDIR)/bits/scc/mach.h
       +setsym.o: libmach.h
       +strip.o: $(INCDIR)/bits/scc/mach.h
        strip.o: libmach.h
       -unpack.o: $(INCDIR)/scc/scc/mach.h
       +unpack.o: $(INCDIR)/bits/scc/mach.h
        unpack.o: libmach.h
       -writeobj.o: $(INCDIR)/scc/scc/mach.h
       +writeobj.o: $(INCDIR)/bits/scc/mach.h
        writeobj.o: libmach.h
 (DIR) diff --git a/src/libscc/deps.mk b/src/libscc/deps.mk
       @@ -1,10 +1,15 @@
        #deps
       -alloc.o: $(INCDIR)/scc/scc/scc.h
       -casecmp.o: $(INCDIR)/scc/scc/scc.h
       -debug.o: $(INCDIR)/scc/scc/scc.h
       -die.o: $(INCDIR)/scc/scc/scc.h
       -newitem.o: $(INCDIR)/scc/scc/scc.h
       -xcalloc.o: $(INCDIR)/scc/scc/scc.h
       -xmalloc.o: $(INCDIR)/scc/scc/scc.h
       -xrealloc.o: $(INCDIR)/scc/scc/scc.h
       -xstrdup.o: $(INCDIR)/scc/scc/scc.h
       +alloc.o: $(INCDIR)/bits/scc/scc.h
       +canonical-posix.o: $(INCDIR)/bits/scc/scc.h
       +casecmp.o: $(INCDIR)/bits/scc/scc.h
       +debug.o: $(INCDIR)/bits/scc/scc.h
       +die.o: $(INCDIR)/bits/scc/scc.h
       +fromepoch-posix.o: $(INCDIR)/bits/scc/scc.h
       +getstat-posix.o: $(INCDIR)/bits/scc/scc.h
       +newitem.o: $(INCDIR)/bits/scc/scc.h
       +setstat-posix.o: $(INCDIR)/bits/scc/scc.h
       +totime-posix.o: $(INCDIR)/bits/scc/scc.h
       +xcalloc.o: $(INCDIR)/bits/scc/scc.h
       +xmalloc.o: $(INCDIR)/bits/scc/scc.h
       +xrealloc.o: $(INCDIR)/bits/scc/scc.h
       +xstrdup.o: $(INCDIR)/bits/scc/scc.h