clădire SpiderMonkey Edita

Utilizați aceste instrucțiuni pentru a construi cele mai recente codul sursă SpiderMonkey.

Înainte de a începe, asigurați-vă că aveți uneltele de compilare potrivite pentru computer: Linux, Windows, Mac, altele . Când construirea unei versiuni mai vechi de 28, va trebui în plus NSPR .

Și, desigur, va trebui să obțineți codul sursă SpiderMonkey .

Non-dezvoltator (optimizat) build

Utilizați acești pași dacă doriți doar să instalați SpiderMonkey sau de a folosi ca o bibliotecă. (Dacă doriți să lucreze la îmbunătățirea SpiderMonkey sine, ar trebui să faci în plus o acumulare dezvoltator / depanare așa cum este descris mai jos.)

cd js/src
autoconf-2.13

# This name should end with "_OPT.OBJ" to make the version control system ignore it.
mkdir build_OPT.OBJ
cd build_OPT.OBJ
../configure
# Use "mozmake" on Windows
make

Rețineți că este necesară autoconf versiunea 2.13. Nici o versiune mai târziu va funcționa. MozillaBuild Pachetul pentru Windows include autoconf 2.13.

Notă: Dacă sunteți pe Mac și obținerea o eroare similar cu

checking whether the C compiler (gcc-4.2 ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
verificarea dacă compilatorul C (gcc-4.2) funcționează ... nu
configurare: eroare: instalarea sau problemă de configurare: compilator C nu poate crea executabile.
checking whether the C compiler (gcc-4.2 ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.

Puteți încerca configurarea astfel:

CC=clang CXX=clang++  ../configure

Aceasta se bazează un executabil cu numele de js in Anuarul build-release/dist/bin . Vă puteți testa cu dist/bin/js --help , care afișează o pagină de ajutor. În acest moment, sunteți gata să ruleze și pentru a încerca coajă .

Pe Mac, Linux, UNIX sau, se poate instala SpiderMonkey pe sistemul cu comanda suplimentar make install . Aceasta instalează biblioteca partajat la /usr/local/lib , fișierele C antet a /usr/local/include , iar js executabil, pentru a /usr/local/bin .

Developer (depanare) build

Pentru dezvoltarea și depanarea SpiderMonkey sine, cel mai bine este de a avea atât o acumulare de depanare (pentru depanare de zi cu zi), precum și o construcție optimizată (pentru testarea de performanță), în directoare construi separate. Astfel, în plus față de urmând pașii de mai sus, ar trebui să creați, de asemenea, o acumulare de depanare folosind acești pași:

cd js/src
autoconf-2.13

# This name should end with "_DBG.OBJ" to make the version control system ignore it.
mkdir build_DBG.OBJ
cd build_DBG.OBJ
../configure --enable-debug --disable-optimize
# Use "mozmake" on Windows
make

Puteți construi, de asemenea depanare construiește de SpiderMonkey cu JS_GC_ZEAL opțiune, care adaugă un nou funcția încorporat pentru a SpiderMonkey care permite configurarea de colectare a gunoiului zelos. Acest lucru poate ajuta pierderi de memorie depanare și alte probleme legate de memorie. A se vedea JS_SetGCZeal() pentru detalii.

Pentru o listă de alte opțiuni disponibile construi, de tip (presupunând că directorul de lucru curent este unul dintre directoarele construi mai sus-create):

../configure --help

ferestre construiește

Începând cu versiunea 28, pentru fire construiește sunt implicit, și ar trebui să funcționeze în afara caseta de pe toate platformele POSIX. Prin urmare, următoarele instrucțiuni ar trebui să fie relevantă numai dacă sunteți pe Windows sau compilarea o versiune mai veche a SpiderMonkey.

MozillaBuild fișier batch ați folosit pentru a deschide o carapace (de exemplu start-shell-msvc2013.bat sau start-shell-msvc2013-x64.bat ) determină dacă toolchain compilatorul va viza pe 32 de biți sau 64 de biți construiește. Pentru a crea o acumulare de 64 de biți, rețineți că trebuie să configurați cu --target=x86_64-pc-mingw32 --host=x86_64-pc-mingw32 .

Având în vedere că emularea POSIX NSPR nu este disponibil pentru Windows, o versiune de lucru a NSPR trebuie să fie disponibile pentru a construi dumneavoastră. Cea mai simplă opțiune este de a configura cu --enable-nspr-build. Această opțiune de configurare se bazează versiunea în copac-a NSPR care este, probabil, ceea ce doriți, pentru că SpiderMonkey folosește mai noi simboluri NSPR, The NSPR că navele cu sistemul de operare, probabil, nu funcționează.a

În cazul în care --enable-nspr-build nu funcționează, spune în mod explicit configure în cazul în care pentru a găsi NSPR folosind --with-nspr-cflags și --with-nspr-libs configura opțiunile. De exemplu, presupunând că dumneavoastră NSPR locale a fost instalat la C:/mozilla-build/msys/local :

./configure --with-nspr-cflags="-IC:/mozilla-build/msys/local/include" \
            --with-nspr-libs="C:/mozilla-build/msys/local/lib/libnspr4.a \
                              C:/mozilla-build/msys/local/lib/libplds4.a \
                              C:/mozilla-build/msys/local/lib/libplc4.a"

Pentru comoditate, puteți trece configure script o opțiune de a forma --prefix=<PREFIXDIR> , care substituie <PREFIXDIR> pentru /usr/local în toate setările de mai sus, într-un singur pas. Aceasta este, de obicei, cel mai puțin lucru supărătoare de a face, deoarece conservă aranjamentul tipic de lib , bin , iar restul.

Notă: Toate directoare trece în configure sunt înregistrate în Makefile generat, astfel încât să nu trebuie să le specificați din nou, până când re-rula configure .

Construirea SpiderMonkey ca o bibliotecă statică Edita

În mod implicit, SpiderMonkey construiește ca o bibliotecă partajată. Cu toate acestea, se poate construi SpiderMonkey ca o bibliotecă statică prin specificarea --disable-shared-js pavilion atunci când executați configure .

Specificarea compilatoare și indicatorii de compilare Edita

Dacă doriți să utilizați o altă persoană decât cea de compilatoare configure script alege pentru tine în mod implicit, puteți seta CXX variabila in mediul atunci când executați configure . Acest lucru va salva valorile specificate în Makefile generat, astfel încât odată ce l-ai setat, nu este nevoie să facă acest lucru din nou, până când nu re-rula configure .

Dacă doriți să treacă anumite steaguri compilator, puteți seta CXXFLAGS variabila de mediu atunci când executați configure . De exemplu, dacă utilizați toolchain GNU, cu următorul text va trece -g3 pavilion pentru a compilatorului, făcându-l să emită informații de depanare despre macro-uri. Apoi, puteți utiliza aceste macro-uri din gdb comenzi:

$ CXXFLAGS=-g3 $SRC/configure
...
checking whether the C++ compiler (c++ -g3 ) works... yes
...
$

entru a construi o versiune pe 32 de biți pe un sistem Linux pe 64 de biți, puteți utiliza următoarele:

PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig CC="gcc -m32" CXX="g++ -m32" AR=ar $SRC/configure --target=i686-pc-linux

Pentru a construi o versiune de 64 de biți pe un sistem de Mac pe 32 de biți (de exemplu, Mac OS X 10.5), puteți utiliza următoarele:

AR=ar CC="gcc -m64" CXX="g++ -m64" ../configure --target=x86_64-apple-darwin10.0.0

Pentru a construi o versiune pe 64 de biți pentru Windows, puteți utiliza următoarele:

$SRC/configure --host=x86_64-pc-mingw32 --target=x86_64-pc-mingw32
Notă: Trebuie să fi început shell MozillaBuild cu scenariul -x64.bat adecvat pentru ca compilatoare pe 64 de biți pentru a fi în calea ta.

Oricare ar fi compilator și steaguri treci la configure sunt înregistrate în Makefile generat, astfel încât să nu trebuie să le specificați din nou, până când re-rula configure .

Construirea aplicației Edita

În timp ce “Cum de a construi aplicația completă” este în mod clar în afara domeniului de aplicare a acestui document, iată câteva sfaturi care vă vor ajuta să ajunge pe calea ta:

  • Dezvoltatorii SpiderMonkey schimba frecvent și în mod deliberat JSAPI ABI. Nu puteți utiliza antete construite pentru o versiune / configurare JSAPI pentru a crea fișiere obiect care vor fi legate de altul.
  • Suport pentru JS_THREADSAFE a fost eliminat recent, iar pentru fire construiește au fost activate în mod implicit.
  • js-config scenariu, descris mai jos, este metoda recomandată de a determina corect includ căi, bibliotecile necesare, etc. pentru încorporarea de a utiliza în timpul compilării. Noi recomandăm apelarea js-config scenariul de la Makefile încorporarea-ului pentru a stabili dvs. CFLAGS, LDFLAGS, și așa mai departe.
  • Pentru a instala undeva SpiderMonkey diferit de cel implicit, trebuie să utilizați configure --prefix opțiune, așa cum este descris mai sus. Imposibilitatea de a face acest lucru se poate rupe ta js-config.h antet sau js-config script.
  • Unele caracteristici detectate de configure script nu funcționează pentru eco-compilare.

Utilizarea script js-config

În plus față de bibliotecile SpiderMonkey, fișierele header și coajă, de a construi SpiderMonkey produce, de asemenea, un script de shell cu numele de js-config care alte sisteme de construire pot utiliza pentru a afla cum de a compila cod, folosind API-urile SpiderMonkey, și modul în care să se interconecteze cu SpiderMonkey biblioteci.

Notă: În SpiderMonkey 1.8.5, script JS-config nu este generată în mod corespunzător pe mai multe platforme. În cazul în care instrucțiunile de mai jos nu funcționează, puteți încerca această soluție .

Atunci când a invocat cu --cflags opțiune, js-config imprimă steagurile pe care ar trebui să treacă la compilatorul C la realizarea fișierelor care folosesc API-SpiderMonkey. Aceste steaguri asigura compilatorul va găsi fișierele header SpiderMonkey.

$ ./js-config --cflags # Example output: -I/usr/local/include/js -I/usr/include/nspr

Când este apelat cu --libs opțiune, js-config imprimă steagurile pe care ar trebui să treacă la compilatorul C când leagă un bibliotecă executabil sau comună care utilizează SpiderMonkey. Aceste steaguri asigura compilatorul va găsi bibliotecile SpiderMonkey, împreună cu orice biblioteci care SpiderMonkey sine depinde asupra (cum ar fi NSPR).

$ ./js-config --libs # Example output: -L/usr/local/lib -lmozjs -L/usr/lib -lplds4 -lplc4 -lnspr4 -lpthread -ldl -ldl -lm  -lm -ldl

 

testarea SpiderMonkey Edita

  • Rula ${BUILDDIR}/dist/bin/js Y.js și verificați dacă adecvată de ieșire este imprimată. (Acesta ar trebui să spun: 5! is 120 .)
  • Rula suita de teste principal prin rularea ./tests/jstests.py ${BUILDDIR}/dist/bin/js
  • Testele efectuate JIT-specifice cu comanda: ./jit-test/jit_test.py ${BUILDDIR}/dist/bin/js

Clădire SpiderMonkey 1.8 sau mai devreme Edita

Utilizați aceste instrucțiuni pentru a construi SpiderMonkey de la o lansare oficială sursă sau de la vechea arhiva CVS. Pentru a construi cele mai noi surse de SpiderMonkey din Mercurial, a se vedea de constructii SpiderMonkey mai sus.

SpiderMonkey este ușor de a construi de la sursă, dacă aveți de obicei Mozilla construi premisele instalate. Înainte de a începe, asigurați-vă că ați construi corect instrumente pentru computer: Linux, Windows, Mac, altele.

În primul rând, descărcați o distribuție sursă SpiderMonkey, cum ar fi SpiderMonkey Candidate 1,8 Release 1 .

Pentru a construi, utilizați aceste comenzi:

gudron xvzf js-1.8.0-rc1.tar.gz gudron xvzf js-1.8.0-rc1.tar.gz
cd js / cd src js / src
make -f Makefile.ref make -f Makefile.ref

Aceasta se bazează o versiune de depanare a SpiderMonkey. Toate fișierele construi sunt create într-un subdirector numit în funcție de sistemul dvs. (de exemplu, Linux_All_DBG.OBJ dacă sunteți pe Linux). Pentru a instala acest build pe sistemul dumneavoastră, consultați instrucțiunile de instalare SpiderMonkey .

Pentru a construi o versiune optimizată (non-debug) de SpiderMonkey:

face BUILD_OPT = 1 -f Makefile.ref fata BUILD_OPT = 1 -f Makefile.ref

Pentru a construi un thread-safe versiune de SpiderMonkey:

face JS_DIST = / complet / calea / catre / directorul / contine / nspr JS_THREADSAFE = 1 -f Makefile.ref fata JS_DIST = / complet / Calea / Catre / Directorul / Contine / nspr JS_THREADSAFE = 1 -f Makefile.ref

See also

Traducere română a acestei pagini realizat de GarciniaCambogiaReviews.ca.

Document Tags and Contributors

 Last updated by: chrisdavidmills,