scc

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

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: