FreeBASIC マニュアルのトップに戻る

FreeBASIC DevBuildDos

目次→FreeBASIC のハッキング→FreeBASIC でのハッキングのための情報Compiling FB with Emscripten←オリジナル・サイト

FB を Emscripten 用にコンパイルする



Windows で Emscripten 用の FB とプログラムをビルドする。

Prerequisites
Install Emscripten (on Windows)
d:/emsdk.git is assumed for installation directory
	d:
	cd \
	git clone https://github.com/emscripten-core/emsdk.git emsdk.git
	cd emsdk.git
	emsdk install latest
	emsdk activate latest
	emsdk_env.bat


Build FBC libraries (on Windows)
d:/fb.git is assumed for latest fbc checked out from repository
	d:
	cd \fb.git
	
	REM whatever you use to set-up your fbc build environment (sets PATH)
	call c:\batch\setpath.bat fbgit32
	
	REM add-in the emscripten build environment (also sets PATH)
	call d:\emsdk.git\emsdk_env.bat
	
	REM build the rtlib and gfxlib for emscripten
	make rtlib gfxlib2 TARGET=asmjs-unknown-emscripten ENABLE_STANDALONE=1


Hook for 'emcc.bat' (on Windows)
Here's the issue: fbc expects the supporting tools to be executable and emscripten font-end on windows uses 'emcc.bat' (plus python in the background) and fbc can't directly call a .BAT file. Here's a cheap hack to make it work:
Compile the following source and copy 'emcc.exe' to 'd:/fb.git/bin/js-asmjs/emcc.exe'
	'' emcc.exe to call emcc.bat and pass all arguments
	''
	'' tested, but not well tested...
	''
	function EscapeArg( byref arg as const string ) as string
		dim ret as string = """"
	
		for i as integer = 1 to len(arg)
			select case mid( arg, i, 1 )
			case """"
				ret &= """"""
			case else
				ret &= mid( arg, i, 1 )
			end select
		next
	
		ret &= """"
	
		function = ret
	
	end function
	
	dim cmd as string = "emcc.bat"
	
	dim i as integer = 1
	while( command(i) > "" )
		cmd += " " & EscapeArg( command(i) )
		i += 1
	wend
	
	'' assumes 'emcc.bat' is on PATH
	
	var result = shell( cmd )
	
	end result


	fbc emcc.bas
	copy emcc.exe d:\fb.git\bin\js-asmjs\emcc.exe


Build an FBC program from fbc source
The first time this runs, emcc takes a long time because emscripten needs to build it's own runtime library and store the result. After the first time, compile times should be much quicker.

	REM whatever you use to set-up your fbc build environment (sets PATH)
	call c:\batch\setpath.bat fbgit32
	
	REM add-in the emscripten build environment (also sets PATH)
	call d:\emsdk.git\emsdk_env.bat
	
	REM build program.bas
	fbc -target js-asmjs program.bas


Run 'program.html'
In the directory where 'program.html', 'program.js' & 'program.wasm' was created

Start a server:
> python -m http.server

Then, browse to the directory:
http://localhost:8000/

Or the program:
http://localhost:8000/program.html

FreeBASIC の開発者用情報 に戻る
目次に戻る
ページ歴史:2022-07-21 04:19:55
日本語翻訳:WATANABE Makoto、原文著作者:JeffMarshall

ホームページのトップに戻る

表示-非営利-継承