begin switching to iglunix-bootstrap
This commit is contained in:
		
							parent
							
								
									ae676959d1
								
							
						
					
					
						commit
						55f352d5d5
					
				
					 2 changed files with 130 additions and 0 deletions
				
			
		
							
								
								
									
										111
									
								
								autobuild.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										111
									
								
								autobuild.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,111 @@ | |||
| #!/bin/sh -e | ||||
| 
 | ||||
| mkdir -p build | ||||
| 
 | ||||
| cd build | ||||
| # TODO: add option for using native toolchain for stage 0 | ||||
| [ -d 'iglunix-bootstrap' ] || git clone --depth=1 https://github.com/iglunix/iglunix-bootstrap | ||||
| [ -d 'iglunix' ] || git clone --depth=1 https://github.com/iglunix/iglunix | ||||
| [ -d 'iglupkg' ] || git clone --depth=1 https://github.com/iglunix/iglupkg | ||||
| 
 | ||||
| SYSROOT_S2=$(pwd)/sysroot | ||||
| IP=$(pwd)/iglupkg/ | ||||
| 
 | ||||
| LOGS=$(pwd)/logs | ||||
| 
 | ||||
| mkdir -p $LOGS | ||||
| 
 | ||||
| echo === STAGE 1 === Build cross toolchain | ||||
| 
 | ||||
| cd iglunix-bootstrap | ||||
| MAKE=gmake bad --gmake ./boot.sh | ||||
| SYSROOT_S1=$(pwd)/sysroot | ||||
| 
 | ||||
| cd .. | ||||
| 
 | ||||
| echo === STAGE 1 === Done | ||||
| 
 | ||||
| s2_build() { | ||||
| 	PKGDIR=$1 | ||||
| 	PKGNAME=$2 | ||||
| 	cd $1/$2 | ||||
| 	[ -f .s2 ] || ${IP}iglupkg.sh --with-cross=x86_64 --with-cross-dir=$SYSROOT_S1 --for-cross --for-cross-dir=/ fbp | ||||
| 	touch .s2 | ||||
| 	# 2>$LOGS/$2.1.err > $LOGS/$2.1.out | ||||
| 	cd ../../ | ||||
| } | ||||
| 
 | ||||
| s2_extract() { | ||||
| 	PKGDIR=$1 | ||||
| 	PKGNAME=$2 | ||||
| 	cd $1/$2/out | ||||
| 	tar -xf $2-*.tar.zst -C $SYSROOT_S2 -I zstd | ||||
| 	cd ../../../ | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| cd iglunix | ||||
| 
 | ||||
| echo === STAGE 2 === Build cross libs | ||||
| 
 | ||||
| s2_build linux musl | ||||
| s2_build linux linux | ||||
| s2_build base libunwind | ||||
| s2_build base libcxx | ||||
| 
 | ||||
| echo === STAGE 2 === Assemble sysroot | ||||
| 
 | ||||
| [ -d "$SYSROOT_S2" ] || { | ||||
| 	mkdir -p $SYSROOT_S2 | ||||
| 	 | ||||
| 	s2_extract linux musl | ||||
| 	s2_extract linux linux | ||||
| 	s2_extract base libunwind | ||||
| 	s2_extract base libcxx | ||||
| } | ||||
| 
 | ||||
| echo === STAGE 3 === Build target packages | ||||
| 
 | ||||
| s3_build() { | ||||
| 	PKGDIR=$1 | ||||
| 	PKGNAME=$2 | ||||
| 	cd $1/$2 | ||||
| 	[ -f .s3 ]  || ${IP}iglupkg.sh --with-cross=x86_64 --with-cross-dir=$SYSROOT_S2 fbp | ||||
| 	touch .s3 | ||||
| 	# 2>$LOGS/$2.2.err > $LOGS/$2.2.out | ||||
| 	cd ../../ | ||||
| } | ||||
| 
 | ||||
| s3_build linux linux | ||||
| s3_build linux musl | ||||
| s3_build linux busybox | ||||
| s3_build base mksh | ||||
| s3_build base toybox | ||||
| s3_build base libunwind | ||||
| s3_build base libcxx | ||||
| s3_build base llvm | ||||
| 
 | ||||
| touch .autobuilt | ||||
| 
 | ||||
| # order to build packages | ||||
| # | ||||
| # build stage 1 cross toolchain with stage 0: | ||||
| # | ||||
| # linux | ||||
| # musl | ||||
| # libunwind | ||||
| # libcxx | ||||
| # ... | ||||
| # | ||||
| # build stage 2 final packages | ||||
| # | ||||
| # linux | ||||
| # musl | ||||
| # libunwind | ||||
| # libcxx | ||||
| # llvm | ||||
| #  | ||||
| # mksh | ||||
| # toybox | ||||
| # busybox | ||||
| # clang | ||||
							
								
								
									
										19
									
								
								chroot.sh
									
										
									
									
									
										Executable file
									
								
							
							
						
						
									
										19
									
								
								chroot.sh
									
										
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,19 @@ | |||
| #!/bin/sh -e | ||||
| cd build | ||||
| [ -f iglunix/.autobuilt ] || echo "ERROR: you need to run autobuild.sh first" | ||||
| CHROOT=$(pwd)/chroot | ||||
| mkdir -p $CHROOT | ||||
| 
 | ||||
| cex() { | ||||
| 	PKGDIR=$1 | ||||
| 	PKGNAME=$2 | ||||
| 	tar -xf iglunix/$PKGDIR/$PKGNAME/out/$PKGNAME.*.tar.zst -I zstd -C $CHROOT | ||||
| } | ||||
| 
 | ||||
| cex linux musl | ||||
| cex linux busybox | ||||
| cex base mksh | ||||
| cex base toybox | ||||
| cex base libunwind | ||||
| cex base libcxx | ||||
| cex base llvm | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue