occlum/tools/installer/deb/toolchains/golang/rules
Zheng, Qi a5cdcc8045 [toolchain] Make occlum-go support gcc/glibc option
In default, occlum-go uses musl-gcc. Users can configure
occlum-go to use gcc like below.
" CC=gcc occlum-go build "
2022-12-07 22:14:03 +08:00

58 lines
1.4 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
# go1.18.4_for_occlum or go1.16.3_for_occlum
GO_BRANCH = go1.18.4_for_occlum
GO_REPO = https://github.com/occlum/go.git
.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)
git clone -b $(GO_BRANCH) $(GO_REPO) .
override_dh_auto_build: prepare
cd $(tmp_build_dir)/src; \
./make.bash
override_dh_install:
mkdir -p $(buildroot)/opt/occlum/toolchains
mv $(tmp_build_dir)/ $(install_dir)
rm -rf $(install_dir)/.git*
cat > $(install_dir)/bin/occlum-go <<EOF
#!/bin/bash
OCCLUM_GCC="\$${CC:-\$$(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 ..."