1topdir=$(shell pwd)/../.. 2include ../../Make.Rules 3 4GOTARGET=$(shell eval $$(go env) ; echo $${GOHOSTOS}_$${GOARCH}) 5 6all: go/fib 7 8go/fib: go/main.go go/fibber/fib.go go/fibber/linkage.go go/fibber/fibs_$(GOTARGET).s go/fibber/fib_$(GOTARGET).syso 9 cd go && CGO_ENABLED=0 go build 10 11# Build the host native version. 12go/fibber/fib_$(GOTARGET).syso go/fibber/linkage.go: c/fib.c ./c/gcc.sh ./package_fns.sh 13 GCC=gcc ./c/gcc.sh -O3 c/fib.c -c -o go/fibber/fib_$(GOTARGET).syso 14 ./package_fns.sh fibber go/fibber/fib_$(GOTARGET).syso > go/fibber/linkage.go 15 16Dockerfile: Makefile ./mkdocker.sh 17 ./mkdocker.sh > $@ 18 19# Use this build target (make arms) to extend support to include arm 20# and arm64 GOARCH values. 21arms: Dockerfile Makefile ./c/gcc.sh ./c/build.sh ./c/fib.c 22 docker run --rm -v $$PWD/c:/shared:z -h debian -u $$(id -u) -it expt shared/build.sh 23 mv c/*.syso go/fibber/ 24 touch arms 25 26clean: 27 rm -f *~ arms 28 rm -f c/*.o c/*~ 29 rm -f go/fib go/*~ 30 rm -f go/fibber/*.syso go/fibber/*~ go/fibber/linkage.go 31