57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
| #!/bin/bash
 | |
| 
 | |
| set -e
 | |
| 
 | |
| V=$PWD/v
 | |
| 
 | |
| if [[ -x "$V" ]]
 | |
| then
 | |
| 	echo "The v executable exists."
 | |
| else
 | |
| 	echo "This script should be run from the top level folder of a V repository"
 | |
| 	echo "i.e. the folder where your V executable is."
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| BUILD=$PWD/vinix_build
 | |
| 
 | |
| echo "Creating $BUILD folder..."
 | |
| rm -rf $BUILD
 | |
| mkdir -p $BUILD
 | |
| 
 | |
| cd $BUILD
 | |
| echo "Clone current Vinix"
 | |
| git clone https://github.com/vlang/vinix.git --depth=1
 | |
| 
 | |
| cd $BUILD
 | |
| echo "Clone current mlibc"
 | |
| git clone https://github.com/managarm/mlibc.git --depth=1
 | |
| 
 | |
| cd $BUILD
 | |
| echo "Patch mlibc for Vinix"
 | |
| cd mlibc 
 | |
| patch -p3 < ../vinix/patches/mlibc/mlibc.patch
 | |
| 
 | |
| cd $BUILD
 | |
| echo "Install mlibc headers"
 | |
| mkdir mlibc-build 
 | |
| cd mlibc-build 
 | |
| meson --cross-file ../vinix/cross_file.txt --prefix=/ -Dheaders_only=true ../mlibc 
 | |
| ninja 
 | |
| mkdir ../mlibc-headers 
 | |
| DESTDIR=`realpath ../mlibc-headers` ninja install
 | |
| 
 | |
| cd $BUILD
 | |
| echo "Attempt to build the Vinix kernel (debug)"
 | |
| cd vinix/kernel 
 | |
| make PROD=false CFLAGS="-D__vinix__ -O2 -g -pipe -I../../mlibc-headers/include" 
 | |
| make clean
 | |
| 
 | |
| cd $BUILD
 | |
| echo "Attempt to build the Vinix kernel (prod)"
 | |
| cd vinix/kernel 
 | |
| make PROD=true  CFLAGS="-D__vinix__ -O2 -g -pipe -I../../mlibc-headers/include" 
 | |
| make clean
 | |
| 
 | |
| rm -rf $BUILD
 |