71 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Makefile
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			71 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-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 ..."
 |