#!/usr/bin/make -f export DH_VERBOSE = 1 export deb_build_dir = /tmp/deb_build export name = occlum-toolchains-gcc 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/gcc SHELL = /bin/bash # Needed by musl-cross-make config TARGET = x86_64-linux-musl MUSL_REPO = https://github.com/occlum/musl MUSL_VER = 1.1.24 GCC_VER = 8.3.0 # Users can pass "-j$(nproc)" by specifying this env. # This is not enabled by default because under certain scenarios, # make will use too many jobs and gcc will be killed because out # of memory. BUILD_OPTIONS += .ONESHELL: prepare_musl override_dh_install %: dh $@ # All rules executed in one shell prepare_musl: rm -rf $(tmp_build_dir) rm -rf $(install_dir) mkdir -p $(src_dir) mkdir -p $(install_dir) override_dh_auto_build: prepare_musl echo "skip override_dh_auto_build" # We create symlinks in /usr/local override_dh_usrlocal: echo "Skip ..." override_dh_fixperms: dh_fixperms # Occlum need this to be executable chmod 755 $(install_dir)/$(TARGET)/lib/libc.so override_dh_install: mkdir -p $(install_dir) cp -rf /opt/occlum/toolchains/gcc/* $(install_dir)/ mkdir -p $(buildroot)/lib pushd $(buildroot)/lib ln -sf /opt/occlum/toolchains/gcc/$(TARGET)/lib/libc.so ld-musl-x86_64.so.1 popd mkdir -p $(buildroot)/usr/local pushd $(buildroot)/usr/local ln -sf /opt/occlum/toolchains/gcc occlum popd mkdir -p $(buildroot)/etc/profile.d cp $(deb_build_dir)/$(name)/debian/occlum-gcc.sh $(buildroot)/etc/profile.d chmod 644 $(buildroot)/etc/profile.d/occlum-gcc.sh clean: dh_clean rm -f $(buildroot) override_dh_shlibdeps: echo "skip ..."