Created
March 11, 2015 09:47
-
-
Save passcod/4b382bc836456b77249b to your computer and use it in GitHub Desktop.
Emscripten build process for jq
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
emconfigure ./configure --disable-maintainer-mode | |
make clean | |
env CCFLAGS=-O2 emmake make LDFLAGS=-all-static CCFLAGS=-O2 -j4 | |
cp jq jq.o | |
emcc -O2 jq.o -o jq.js |
I tried this. I tried with both the tarball and the git source code. I tried installing Oniguruma and using Oniguruma from modules/oniguruma
. I tried precompiling Oniguruma with emscriptem before. I tried moving Oniguruma source code to modules/oniguruma
. I tried passing many different directives to emmake make
, both the ones specified here and those from jq's readme. All failed.
Ok, I finally got it working. For all begginers like me, the above instructions do work, but here's what I did exactly:
- download the
master.zip
(the full repository) of oniguruma and jq from GitHub. - unzip oniguruma, enter the directory, run
autoreconf -i
,emconfigure ./configure
andemmake make
- unzip jq, enter the directory, run
autoreconf -i
- move your own oniguruma directory (which is probably called "oniguruma-master") to "jq-master/modules/oniguruma" (delete the blank directory that comes inside "jq-master/modules/")
- run the instructions above with absolute strictness
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi
I have been trying to compile jq with emscripten for most of the afternoon without success.
So far, I have needed to build Bison3, and locate a working Oniguruma src tarball.
I can build jq perfectly to the normal cmd, but emscripten continues to fail.
As you seem to have had some success, I was hoping you might share your experiences.
Can you give me a few more details about how you did it?
Do you know which jq version you compiled? (I am using 1.5)
Do you know which emscripten version you used?
I assume you used the tarball?
FYI: I am running on fedora 20, and configure is no longer complaining.
I have followed your instructions to the letter,
but when I try to run the final step, I get...
/home/rillingworth/tools/emsdk_portable/clang/tag-e1.34.7/build_tag-e1.34.7_64/bin/lli: error creating EE: No available targets are compatible with this triple, see -version for the available targets.
FAIL: Running the generated program failed!
Traceback (most recent call last):
File "/home/rillingworth/Projects/asm/emscripten/emcc", line 1571, in
final = shared.Building.emscripten(final, append_ext=False, extra_args=extra_args)
File "/home/rillingworth/Projects/asm/emscripten/tools/shared.py", line 1370, in emscripten
assert os.path.exists(filename + '.o.js') and len(open(filename + '.o.js', 'r').read()) > 0, 'Emscripten failed to generate .js: ' + str(compiler_output)
AssertionError: Emscripten failed to generate .js:
Any ideas why it fails to recognise the object file type?
If you have any other suggestions, I would love to hear them.
Thanks in advance
Regards
Ross
ps: if you are feeling really generous, could you rerun the process and dump the full output here?
That was I can simply walk through it and find out where mine is going wrong