Makefile (985B)
1 .POSIX: 2 3 SMAKE = $$PWD/scc-make 4 5 all: deps 6 7 scc-make: 8 $(CC) -o $@ src/cmd/scc-make/*.c 9 10 deps: scc-make 11 +@$(SMAKE) dep 12 touch $@;\ 13 14 all dep tests install uninstall: scc-make check_config FORCE 15 +@$(SMAKE) -f main.mk $@ 16 17 check_config: scc-make FORCE 18 @if ! test -f config.mk;\ 19 then\ 20 $(SMAKE) config;\ 21 fi 22 23 config: scc-make FORCE 24 @if ! command -v qbe > /dev/null;\ 25 then \ 26 echo "qbe code generator is required to use scc" >&2;\ 27 exit 1;\ 28 fi 29 mkdir -p bin 30 $(CC) -o scc-make src/cmd/scc-make/*.c 31 ./scripts/config 32 @$(SMAKE) -f main.mk config 33 34 config-musl: scc-make FORCE 35 $(SMAKE) LIBPROFILE=musl config 36 gcc -v 2>&1 |\ 37 sed -En '/COLLECT_LTO_WRAPPER=/ s/.*=(.*)\/lto-wrapper/\1/p' |\ 38 (read -r path; \ 39 printf "g/define GCCLIBPATH/ s@.*@#define GCCLIBPATH \"$$path/\"@\nw\n") |\ 40 ed -s include/bits/scc/sys.h 41 42 clean: FORCE 43 touch config.mk 44 $(MAKE) -f main.mk clean 45 46 distclean: clean FORCE 47 touch config.mk 48 $(MAKE) -f main.mk distclean 49 rm -f config.mk deps scc-make 50 51 FORCE: