65 lines
1.7 KiB
Makefile
Executable File
65 lines
1.7 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
export DH_VERBOSE = 1
|
|
export deb_build_dir = /tmp/deb_build
|
|
export name = occlum-toolchains-golang
|
|
export buildroot := $(deb_build_dir)/$(name)/debian/$(name)
|
|
|
|
export tmp_build_dir = $(deb_build_dir)/$(name)/tmp_build
|
|
export install_dir = $(buildroot)/opt/occlum/toolchains/golang
|
|
|
|
SHELL = /bin/bash
|
|
|
|
# Needed by musl-cross-make config
|
|
TARGET = x86_64-linux-musl
|
|
GCC_VER = 8.3.0
|
|
GO_VERSION = 1.13.7
|
|
GO_REPO = https://github.com/golang/go/archive/go$(GO_VERSION).tar.gz
|
|
GO_PATCH = adapt-golang-to-occlum.patch
|
|
|
|
.ONESHELL: prepare override_dh_install
|
|
|
|
%:
|
|
dh $@
|
|
|
|
# All rules executed in one shell
|
|
prepare:
|
|
rm -rf $(tmp_build_dir)
|
|
rm -rf $(install_dir)
|
|
mkdir -p $(tmp_build_dir)
|
|
cd $(tmp_build_dir)
|
|
wget $(GO_REPO)
|
|
tar -xvzf go$(GO_VERSION).tar.gz
|
|
cd go-go$(GO_VERSION)
|
|
patch -p1 < $(deb_build_dir)/$(name)/debian/$(GO_PATCH)
|
|
|
|
override_dh_auto_build: prepare
|
|
cd $(tmp_build_dir)/go-go$(GO_VERSION)/src; \
|
|
export GO_LDFLAGS="-compressdwarf=false"; \
|
|
./make.bash
|
|
|
|
override_dh_install:
|
|
mkdir -p $(buildroot)/opt/occlum/toolchains
|
|
mv $(tmp_build_dir)/go-go$(GO_VERSION)/ $(install_dir)
|
|
rm -rf $(install_dir)/.git*
|
|
cat > $(install_dir)/bin/occlum-go <<EOF
|
|
#!/bin/bash
|
|
OCCLUM_GCC="\$$(which occlum-gcc)"
|
|
OCCLUM_GOFLAGS="-buildmode=pie \$$GOFLAGS"
|
|
CC=\$$OCCLUM_GCC GOFLAGS=\$$OCCLUM_GOFLAGS /opt/occlum/toolchains/golang/bin/go "\$$@"
|
|
EOF
|
|
chmod +x $(install_dir)/bin/occlum-go
|
|
|
|
mkdir -p $(buildroot)/etc/profile.d
|
|
cp $(deb_build_dir)/$(name)/debian/occlum-go.sh $(buildroot)/etc/profile.d
|
|
chmod 644 $(buildroot)/etc/profile.d/occlum-go.sh
|
|
|
|
clean:
|
|
dh_clean
|
|
rm -f $(buildroot)
|
|
|
|
# Skip stripping
|
|
override_dh_strip_nondeterminism:
|
|
override_dh_strip:
|
|
override_dh_shlibdeps:
|
|
echo "skip ..."
|