cd ~emsdk
./emsdk update-tags
./emsdk install tot
./emsdk activate tot
source ~/emsdk/emsdk_env.sh
cd ~/wasm
mv c181.c ccc.c
wget test.1ink.us/c/c181.c

emcc c181.c -o c181.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3

pftp 1ink.us

cd wasm.noahcohn.com
put c181.wasm
cd ../test.1ink.us
cd c
cd to-u16
put c181.js
exit





emconfigure ./configure -disable-video -disable-render  -disable-joystick -disable-haptic  -disable-sensor  -disable-power   -disable-threads 



cd wasm
wget test.1ink.us/c/c181.c

emcc c181.c -o c181.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3

pftp 1ink.us

cd wasm.noahcohn.com
put c181.wasm
cd ../test.1ink.us
cd c
put c181.js

exit


source ~/emsdk/emsdk_env.sh

wget test.1ink.us/c/pre

emcc  1play4.c -o aud6.html -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=0  -s MALLOC="emmalloc" -O3 -s FORCE_FILESYSTEM=1 --pre-js pre

pftp 1ink.us

cd test.1ink.us
cd cplay
put au11.js
put au11.wasm
put au11.html
exit

emcc  simple_playback.c -o audi.html -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=0  -s MALLOC="emmalloc" -O3


cd ~/mympt/libopenmpt-0.6.0-pre.8+r14425/build/make

source ~/emsdk/emsdk_env.sh

mv config-ems* gghfff66f
wget test.1ink.us/c/config-emscripten.mk
cd ../..
make clean
make CONFIG=emscripten -j2

 unset CFLAGS
 unset CXXFLAGS

source ~/emsdk/emsdk_env.sh

git clone git@github.com:ltearno/my-own-cluster.git

cd my-own-cluster
make build-prepare
make build run-serve


git clone https://github.com/szk2s/wasm-juce-example.git


cd wasm-genplus
mkdir build && cd build
emcmake cmake ..
emmake make

source ~/emsdk/emsdk_env.sh
mv c1816.c mm




source ~/emsdk/emsdk_env.sh
cd wasm

wget https://test.1ink.us/c/c202.c

emcc c202.c -o c202.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=0  -s MALLOC="emmalloc" -O3

pftp 1ink.us

cd wasm.noahcohn.com

put c202.js
put c202.wasm
exit



--closure 1 -sMAXIMUM_MEMORY = 1400mb;



OPENGL

    sudo apt update
    sudo apt upgrade

    sudo apt install freeglut3-dev

sudo apt install binutils-gold g++ libglew-dev g++ mesa-common-dev  libglew1.5-dev libglm-dev


    sudo apt install mesa-utils
    
sudo apt install libx11 libxcursor libxi libxrandr libxss
source ~/fips-sdks/emsdk/emsdk_env.sh
cd ouzel
make   PLATFORM=emscripten

cd test.1ink.us
cd hxc4
put hxcmod.css 
put js_hxcmod_player_asmjs.js 
put js_hxcmod_player_wasm.wasm 
put play.png
put index.html
put js_hxcmod_player_wasm.js 
put webaudio_layer.js

exit
-s NO_FILESYSTEM=1
-s USE_WEBGL2=1
 -s USE_WEBGPU=1
 -s ENVIRONMENT=web -s MALLOC="emmalloc" -s SINGLE_FILE -s MALLOC="emmalloc" -s FILESYSTEM=0 

 
ENVIRONMENT INSTALLS - 

sudo apt update
sudo apt install --yes freeglut3-dev
sudo apt install --yes git build-essential autoconf automake libtool-bin curl perl python3 python2 python-is-python3 jsdoc-toolkit pkg-config cmake nodejs vim ftp openjdk-8-jre clang-format clang-tidy clang-tools clang clangd libc++-dev libc++1 libc++abi-dev libc++abi1 libclang-dev libclang1 liblldb-dev libllvm-ocaml-dev libomp-dev libomp5 lld lldb llvm-dev llvm-runtime llvm python-clang clang lldb lld binaryen ninja-build ccache cmake-curses-gui binutils-gold g++ libglew-dev g++ mesa-common-dev  libglew1.5-dev libglm-dev mesa-utils libxcb-xinerama0-dev rsync npm apt-utils libglu1-mesa-dev xorg-dev cmdtest cppcheck astyle colordiff xsltproc meson bison texinfo gettext doxygen

qt - 

sudo apt install alsa-lib make-ca cups libglib gst-plugins-base harfbuzz ICU JasPer

qt - 

sudo sed -i '/deb-src/s/^# //' /etc/apt/sources.list && sudo apt update
sudo apt install --yes qt5-default qtbase5-dev qtbase5-dev-tools qtbase5-doc qtbase5-doc-dev qtbase5-doc-html qtbase5-examples libfontconfig1
sudo apt-get build-dep --yes qt5-default


git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install sdk-1.38.30
./emsdk activate sdk-1.38.30
C
source ~/emsdk/emsdk_env.sh

git clone -b 5.15.2 https://code.qt.io/qt/qt5.git

cd qt5

./init-repository -f --module-subset=qtbase,qtdeclarative,qtwebsockets,qtsvg,qtquickcontrols,qtquickcontrols2,qtgraphicaleffects

./configure -opensource -confirm-license -xplatform wasm-emscripten -release -static -no-feature-thread -nomake examples -no-dbus -no-ssl -nomake tests -prefix $PWD/qtbase 

 ./configure     -c++std c++11   -xplatform wasm-emscripten  -nomake examples     -static    -opensource     -prefix $PWD/qtbase       --confirm-license

make -j22

cd ..

git clone https://github.com/msorvig/qt-webassembly-examples.git

cd qt-webassembly-examples/quick_controls2_gallery
../../../qt5/qtbase/bin/qmake

make -j


OPEN FRAMEWORK - 

 git clone https://github.com/juj/emsdk.git
 
   cd emsdk
   
   ./emsdk update
   
   ./emsdk install latest
   
   ./emsdk activate latest
   
   source ./emsdk_env.sh
   
   git clone --depth=1 https://github.com/openFrameworks/openFrameworks.git
   
   cd openFrameworks
   
   scripts/emscripten/./download_libs.sh
   
   cd examples/3d/3DPrimitivesExample
   
   cp ../../../scripts/templates/emscripten/Makefile .
   
   cp ../../../scripts/templates/emscripten/config.make .
   
   emmake make
   
   
STUNT RALLY - 
sudo apt-get install --assume-yes git cmake g++
sudo apt-get install --assume-yes libboost-wave-dev libboost-system-dev libboost-filesystem-dev libboost-thread-dev
sudo apt-get install --assume-yes libogre-1.9-dev libmygui-dev libsdl2-dev
sudo apt-get install --assume-yes libogg-dev libvorbis-dev libenet-dev libopenal-dev
sudo apt-get install --assume-yes libbullet-dev libbullet-extras-dev
git clone --depth=1 git://github.com/stuntrally/stuntrally.git stuntrally
cd stuntrally/data
git clone --depth=1 git://github.com/stuntrally/tracks.git tracks
cd ..
mkdir build 
cd build   
cmake ..
make -j22



-s PRECISE_F32=1
-s USE_CLOSURE_COMPILER=1;


emmake make -j --emcc-cflags="-s USE_SDL=2 -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc""



emconfigure ./configure --cc=emcc --ar=emar --extra-cflags="-o tcc.html -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc""
emmake make -j
emconfigure ./configure --cc=emcc --ar=emar --extra-cflags="-o tcc.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc""
emmake make -j
pftp 1ink.us

cd test.1ink.us/c
put tcc.js
put tcc.html

pftp 1ink.us

cd wasm.noahcohn.com
put a285.js
put a285.wasm
exit

cd wasm.noahcohn.com
put wx209.js
exit

source ~/emsdk/emsdk_env.sh
cd emsdk/vpiano


 emconfigure ./configure -xplatform wasm-emscripten -prefix $PWD/qtbase   
 
 emmake make -j22
emmake make install -j22


sudo apt install drumstick-tools libao-dev libasound2-dev libclalsadrv-dev libclalsadrv2 libdrumstick-alsa1 libdrumstick-dev libdrumstick-rt-backends libdrumstick-rt1 librtmidi-dev librtmidi4 

libsystemd libudev libb2 libproxy-1.0 atspi-2 directfb harfbuzz xkbcommon-x11 xrender egl opengl

libsystemd-dev  libudev-dev libb2-dev  libb2-1 libudev1    libxkbcommon-x11-dev libnvidia-gl-460 libgles-dev libharfbuzz0b libxrender-dev libgegl-dev libharfbuzz-dev libgegl-common libdirectfb-1.7-7 libdirectfb-bin libdirectfb-dev libproxy-dev libproxy-tools  libatspi2.0-dev


FT2PLAY - 

emcc -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=0 -s SINGLE_FILE -s MALLOC="emmalloc" -O3 -s FILESYSTEM=0 ../audiodrivers/sdl/*.c ../*.c src/*.c -o ft2play.js



sudo apt install libfluidsynth

QT compile notes - 

git clone -b wip/webassembly  https://... qt

cd qt

 emconfigure ./configure -xplatform wasm-emscripten -nomake examples -prefix $PWD/qtbase -opensource -confirm-license -c++std c++11  -opengl es2   -opengles3 yes  -harfbuzz qt   -libpng qt -libjpeg qt                      

sudo apt install qt5-default qttools5-dev

 
HOWLER

source ~/emsdk/emsdk_env.sh
cd wasm/wasm2

wget https://test.1ink.us/h0wl/c/h001.c

emcc h001.c -o hh001.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1

pftp 1ink.us

cd wasm.noahcohn.com
put hh001.js
put hh001.wasm
exit


	emcc main.cpp qstdweb_core.cpp qstdweb_gui.cpp  -o nativecontrols.html --bind --shell-file shell.html -g  --std=c++20 -s MODULARIZE=1 -s ENVIRONMENT=web,worker -s INITIAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3
	
	
	emcc main.cpp -o OUT/default.js -std=c++20 -s PTHREAD_POOL_SIZE=2 -s USE_PTHREADS=1 -s ENVIRONMENT=web,worker -s INITIAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3


pftp 1ink.us

cd test.1ink.us
cd qtexamp
cd emscripten_nativecontrols
put nativecontrols.js
put nativecontrols.wasm
put nativecontrols.html
put shell.html
put default.wasm
exit





USE_PTHREADS

cd noahcohn.com
cd build
mkdir webos2
cd webos2
  put  WebOS.data 
put  WebOS.o 
put   imgui.o     
put   imgui_draw.o      
put   imgui_impl_sdl.o
put   index.html 
put   style.css
put Menu.o  
put WebOS.js   
put WebOS.wasm* 
put imgui_demo.o 
put imgui_impl_opengl3.o 
put imgui_widgets.o
put main.o



emcc b333.c -o b73.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=1  -s EXPORTED_FUNCTIONS='["_main", "_frm", "_setixi", "_setfrt", "_getfrt", "_getiwi", "_getihe", "_getfrm", "_getlen"]'  -s EXPORTED_RUNTIME_METHODS='["ccall"]' -s MALLOC="emmalloc" -O3


emcc rloop.c -o b53.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0  -s EXPORTED_FUNCTIONS='["_main", "_frm", "_setiwi", "_setihe", "_setfrt", "_getfrt", "_getiwi", "_getihe", "_getfrm"]'  -s EXPORTED_RUNTIME_METHODS='["ccall"]' -s MALLOC="emmalloc" -O3

emcc 010a.c -o btest018.js -s ENVIRONMENT=web -s INITIAL_MEMORY=768mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3

emcc 009b.c -o btest012b.js -s ENVIRONMENT=web -s INITIAL_MEMORY=768mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3


emconfigure ./configure SDL_CFLAGS="-I/usr/local/include/SDL2 -D_REENTRANT"  --disable-qt --disable-pulseaudio --disable-jack --enable-emscripten

emcc 009a.c -o b3a1.js -s ENVIRONMENT=web -s INITIAL_MEMORY=768mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1


emcc 110420c.c -o test012.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1 -s GL_MAX_TEMP_BUFFER_SIZE=201326592 

emcc 110420d.c -o test013.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1 -s GL_MAX_TEMP_BUFFER_SIZE=201326592 

emcc 110420a.c -o test015.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1 -s GL_MAX_TEMP_BUFFER_SIZE=201326592 

emcc 110420a.c -o test016.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1

pftp 1ink.us

cd wasm.noahcohn.com
put x170.js
put x170.wasm
exit
   
   





source ~/emsdk/emsdk_env.sh
cd ~/Down*/github/c
emcc spincc5.c -o imgspin24.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1
emcc spincc4.c -o imgspin20.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1
emcc spinbw3.c -o imgspin14.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1
emcc 011121.c -o x160.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1


emcc b.c -o x158.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1


    * EmscriptenRunner
    */
   function EmscriptenRunner(canvas, game_data) {
     var self = this;
     this._canvas = canvas;
     this._hooks = { start: [], reset: [] };
     // This is somewhat wrong, because our Emscripten-based emulators
     // are currently compiled to start immediately when their js file
     // is loaded.
     Module = { arguments: game_data.emulator_arguments,
                screenIsReadOnly: true,
                print: function (text) { console.log(text); },
                printErr: function (text) { console.log(text); },
                canvas: canvas,
                noInitialRun: false,
                locateFile: game_data.locateAdditionalJS,
                wasmBinary: game_data.wasmBinary,
                preInit: function () {
                           // Re-initialize BFS to just use the writable in-memory storage.
                           BrowserFS.initialize(game_data.fs);
                           var BFS = new BrowserFS.EmscriptenFS();
                           // Mount the file system into Emscripten.
                           FS.mkdir('/emulator');
                           FS.mount(BFS, {root: '/'}, '/emulator');
                         },
                preRun: [function () {
                            self._hooks.start.forEach(function (f) {
                                                        //try {
                                                          f && f();
                                                        //} catch(x) {
                                                        //  console.warn(x);
                                                        //}
                                                      });
                          }]
              };
   }
   
   
   emcc 102920.c -o tst009.js  -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1

   
   
   
   


2147483648
GL_MAX_TEMP_BUFFER_SIZE = 2097152;
USE_CLOSURE_COMPILER = 0;
FULL_ES2 = 0;
-s MAX_WEBGL_VERSION=2

emcc 101220b.c -o test020.js -s GL_MAX_TEMP_BUFFER_SIZE=201326592 -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s MAX_WEBGL_VERSION=2 -s LEGACY_GL_EMULATION=1

emcc 101220b.c -o test021.js -s GL_MAX_TEMP_BUFFER_SIZE=201326592 -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s MAX_WEBGL_VERSION=2  -s MIN_WEBGL_VERSION=2 -s USE_CLOSURE_COMPILER=1


emcc 101220.c -o test008.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s-s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s MAX_WEBGL_VERSION=2 -s GL_UNSAFE_OPTS=1 -s MIN_WEBGL_VERSION=2 -s USE_CLOSURE_COMPILER=1

emcc 101220.c -o test009.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s MAX_WEBGL_VERSION=2 -s GL_UNSAFE_OPTS=1 -s MIN_WEBGL_VERSION=2 -s USE_CLOSURE_COMPILER=1 -s FULL_ES3=1


emcc 009b.c -o b3b1.js -s ENVIRONMENT=web -s INITIAL_MEMORY=768mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1
emcc 009b.c -o b3b2.js -s ENVIRONMENT=web -s INITIAL_MEMORY=1400mb -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=0 -s MALLOC="emmalloc" -O3 -s USE_WEBGL2=1


 -s FULL_ES3=1


maybe - just try the kernel.setOutput(videoElement) on every frame as if setup()
then - take advantage of the wafram mem except for new video
take videos out of canvas area - 
original size + len then render kernel outputs iwi / ihe
projm wants GL EMU 1

projectm should check if background = white / black vs projectm's background


GPU.kernel.destroy();

GPU.getfram.setOutput(outpu);

??

/home/ford/RAM/sdl2/include/SDL.h

-I/usr/local/include/SDL2 -D_REENTRANT

emconfigure ./configure --enable-sdl --disable-qt --enable-llvm --prefix=$PWD/local SDL_CFLAGS='-I/usr/local/include/SDL2 -D_REENTRANT' SDL_LIBS='-L/usr/local/lib -Wl,-rpath,/usr/local/lib -Wl,--enable-new-dtags -lSDL2'



emcc b3.c -o b3hd.js -s EXPORTED_FUNCTIONS='["_v_change", "_f_change", "_main"]' -s EXTRA_EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]' -s ENVIRONMENT=web -s FORCE_FILESYSTEM=1 -s TOTAL_MEMORY=256MB -s MAX_WEBGL_VERSION=2 -s USE_SDL=2  -O3


emcc b3nodestroy.c -o AB.js -s EXPORTED_FUNCTIONS='["_v_change", "_f_change", "_main"]' -s EXTRA_EXPORTED_RUNTIME_METHODS='["ccall", "cwrap"]' -s ENVIRONMENT=web -s FORCE_FILESYSTEM=1 -s TOTAL_MEMORY=256MB -s MAX_WEBGL_VERSION=2 -s USE_SDL=2  -O3


emcc b3d.c -o bd.js -s ENVIRONMENT=web -s FORCE_FILESYSTEM=1 -s INITIAL_MEMORY=768mb -s TOTAL_MEMORY=1024mb -s ALLOW_MEMORY_GROWTH=0 -s USE_WEBGL2=1 -s USE_SDL=2 -s MALLOC="emmalloc" -s FULL_ES3=1  -O3


emcc b3nod.c -o bnod.js -s ENVIRONMENT=web -s FORCE_FILESYSTEM=1 -s INITIAL_MEMORY=768mb -s TOTAL_MEMORY=1024mb -s ALLOW_MEMORY_GROWTH=1 -s USE_WEBGL2=1 -s USE_SDL=2 -s MALLOC="emmalloc" -O3

emcc b332.c -o b32.js -s ENVIRONMENT=web -s FORCE_FILESYSTEM=1 -s INITIAL_MEMORY=1024mb -s ALLOW_MEMORY_GROWTH=0 USE_WEBGL2=1 -s USE_SDL=2 -s MALLOC="emmalloc" -O3


-s ENVIRONMENT=web -s FORCE_FILESYSTEM=1 -s INITIAL_MEMORY=1024mb -s ALLOW_MEMORY_GROWTH=0 -s USE_WEBGL2=1 -s USE_SDL=2 -s MALLOC="emmalloc" -s OFFSCREEN_FRAMEBUFFER=1 -O3

emmake make -s USE_SDL=2 -j8

	emcc  projectW.bc -o pmain.js -s EXPORTED_FUNCTIONS=['_main', '_glBindSampler', '_glDeleteSamplers', '_glGenSamplers', '_glSamplerParameteri', '_glTexImage3D', '_glUniformMatrix3x4fv'] -s FULL_ES2=1 -s ENVIRONMENT=web -s FORCE_FILESYSTEM=1 -s -s INITIAL_MEMORY=512mb -s TOTAL_MEMORY=1024mb -s ALLOW_MEMORY_GROWTH=1 -s MALLOC='emmalloc' -O3


	
	
	ProjectM-Emscripten:
	
	emconfigure ./configure SDL_CFLAGS="-I/usr/local/include/SDL2 -D_REENTRANT"  --disable-qt --enable-sdl --enable-gles

		emcc  projectW.bc -o test002.html   -s FULL_ES3=1 -s ENVIRONMENT=web -s FORCE_FILESYSTEM=1 -s EXPORTED_FUNCTIONS='[]' -s USE_SDL=2 -s TOTAL_MEMORY=1400mb -s ALLOW_MEMORY_GROWTH=1 -s MALLOC="emmalloc" -O3


		
		
		
	_SDL_CreateWindow
	_SDL_GetAudioDeviceName

	_SDL_RenderPresent
	_glBindSampler
	_glDeleteSamplers=2
	_glGenSamplers
	_glSamplerParameteri
	_glTexImage3D
	_glUniformMatrix3x4fv
	-s EXPORTED_FUNCTIONS='["SDL_RenderPresent"]'

	emmake sudo make install -j33 -s EXPORTED_FUNCTIONS='["SDL_CreateWindow", "SDL_GetAudioDeviceName", "SDL_GetNumAudioDevices", "SDL_GetNumAudioDevices", "SDL_RenderPresent", "_glBindSampler", "glDeleteSamplers", "_glGenSamplers", "_glSamplerParameteri", "glTexImage3D", "glUniformMatrix3x4fv", "main"]'
	
	
	
	emconfigure ./configure  --disable-qt --disable-pulseaudio --disable-jack --enable-emscripten --disable-sdltest --enable-threading --disable-sdl --disable-llvm --disable-rpath SDL_CFLAGS="-I/usr/local/include/SDL2 -D_REENTRANT" SDL_LIBS="-lSDL2"



-s FULL_ES2=1 -s MIN_WEBGL_VERSION=1 -s MAX_WEBGL_VERSION=1
--llvm-lto 3
 -s USE_PTHREADS=1 -s LEGACY_GL_EMULATION=1



-s LEGACY_GL_EMULATION=1
--pre-js <file>
-s MODULARIZE=1

-O3cd ~/emsdk
EXTRA_EXPORTED_RUNTIME_METHODS='["_glBindSampler", "_glDeleteSamplers", "_glGenSamplers", "_glSamplerParameteri", "_glTexImage3D", "_glUniformMatrix3x4fv"]'

set in settings.js -
var MALLOC = "dlmalloc";
var ALLOW_MEMORY_GROWTH = 0;

PROJECTM
uses SDL2 + webgl1

     5
     6     $ mkdir build
     7     $ cd build     5
     6     $ mkdir build
     7     $ cd build     5
     6     $ mkdir build
     7     $ cd build     5
     6     $ mkdir build
     7     $ cd build
 $ emconfigure ../config..
Emscripten
     2 ================================================================================
     3
     4 Build:
     5
     6     $ mkdir build
     7     $ cd build
     8     $ emconfigure ../configure --host=asmjs-unknown-emscripten --disable-assembly --disable-threads --disable-cpuinfo CFLAGS="-O2"
     9     $ emmake make -j8
    10
    11 Or with cmake:
    12
    13     $ mkdir build
    14     $ cd build
    15     $ emcmake cmake ..
    16     $ emmake make
    17

    18 To build one of the tests:
    19
    20     $ cd test/
    21     $ emcc -O2 --js-opts 0 -g4 testdraw2.c -I../include ../build/.libs/libSDL2.a ../build/libSDL2_test.a -o a.html
    22
    23 Uses GLES2 renderer or software
    24
    25 Some other SDL2 libraries can be easily built (assuming SDL2 is installed somewhere):
    26
    27 SDL_mixer (http://www.libsdl.org/projects/SDL_mixer/):
    28
    29     $ EMCONFIGURE_JS=1 emconfigure ../configure
    30     build as usual...
    31
    32 SDL_gfx (http://cms.ferzkopp.net/index.php/software/13-sdl-gfx):
    33
    34     $ EMCONFIGURE_JS=1 emconfigure ../configure --disable-mmx
    35     build as usual...


emcc b3dtest.c -o bnewb.js -s ENVIRONMENT=web -s FORCE_FILESYSTEM=1 -s INITIAL_MEMORY=1024mb -s ALLOW_MEMORY_GROWTH=0 -s USE_WEBGL2=1 -s USE_SDL=2 -s MALLOC="emmalloc" -O3




var INITIAL_MEMORY = 16777216;

var FULL_ES3 = 0;

projectM-emscripten -

emconfigure ./configure --enable-sdl --emscripten-compiler --disable-qt --disable-jack --disable-pulseaudio 

emconfigure ./configure --enable-sdl --enable-emscripten




--enable-gles  is for embedded


emcc ff.bc -o ff.js -s ENVIRONMENT=web -s FORCE_FILESYSTEM=1 -s INITIAL_MEMORY=1024mb -s ALLOW_MEMORY_GROWTH=0 -s MAX_WEBGL_VERSION=2 -s USE_SDL=2 -O3 -j8


FS.mkdir('/presets');


 emconfigure ./configure   --disable-x86asm   --disable-inline-asm --nm="llvm-nm -g"   --ar=emar   --cc=emcc   --cxx=em++   --objcc=emcc   --dep-cc=emcc --enable-sdl


  emcc   -Llibavcodec -Llibavdevice -Llibavfilter -Llibavformat -Llibavresample -Llibavutil -Llibpostproc -Llibswscale -Llibswresample -Qunused-arguments -o ffmpeg.js fftools/ffmpeg_opt.o fftools/ffmpeg_filter.o fftools/ffmpeg_hw.o fftools/cmdutils.o fftools/ffmpeg.o -lavdevice -lavfilter -lavformat -lavcodec -lswresample -lswscale -lavutil -lm -s INITIAL_MEMORY=1024mb

  To save a file to file system, you need to prepare an array in Uint8Array format, in Node.js environment, you can do something like this:
const fs = require('fs');
const data = new Uint8Array(fs.readFileSync('./input.avi'));
And save to emscripten file system by FS.writeFile():
require('./ffmpeg-core.js)()
  .then(Module => {
    Module.FS.writeFile('input.avi', data);
  });
To load file from emscripten file system is similar:
require('./ffmpeg-core.js)()
  .then(Module => {
    const data = Module.FS.readFile('output.mp4');
  });


NO - var EXPORTED_RUNTIME_METHODS = [];
USE - var EXTRA_EXPORTED_RUNTIME_METHODS = [];

such things as O4

CPATH
* `libglm` (headers only) for matrix math is required. lives in `vendor/glm`.


// If nonzero, enables emscripten_fetch API.
var FETCH = 0;


// The size of our shadow memory.
// By default, we have 32 MiB. This supports 256 MiB of real memory.
var ASAN_SHADOW_SIZE = 33554432;
MEMORY_GROWTH_GEOMETRIC_STEP=1.0


 171var MAXIMUM_MEMORY = 2147483648;


// declaring multiple variables  js
var name, title, num;


let globalVar = "This is a global variable";

function fun() {
  let localVar = "This is a local variable";

  console.log(globalVar);
  console.log(localVar);
}

fun();




let globalLet = "This is a global variable";

function fun() {
  let globalLet = "This is a local variable";
  console.log(window.globalLet); // This is a global variable
}
fun();




function fun(){
    function fun2(){
         i = 100;
    }
    fun2();
    console.log(i); // 100
}
fun();



const uint8 = new Uint8Array([0, 0, 0, 0]);
// (value, start position, end position);
uint8.fill(4, 1, 3);

console.log(uint8);
// expected output: Uint8Array [0, 4, 4, 0]



#include <stdio.h>
#include <time.h>
void delay(int milli_seconds)
{
clock_t start_time = clock();
while (clock() < start_time + milli_seconds)
;
}


int main()
{
        delay(1);
        printf("delay");
    return 0;
}



wafram = new WebAssembly.Memory
So you can access to the ArrayBuffer used by your WASM module through Module['wasmMemory'].buffer:

let instance = new Module.MyClass();

// ... Do something

let ptr = instance.getPtr();
let size = instance.getLength();
// You can use Module['env']['memory'].buffer instead. They are the same.
let my_uint8_buffer = new Uint8Array(wafram.buffer, ptr, size);
