U E D R S I H C RSS
ID
Password
Join
์ผํ•˜๋Š” ๊ฒƒ, ์ด๊ฒƒ๋งŒ์ด ์‚ด์•„ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. -ํŒŒ๋ธŒ๋ฅด

๏ปฟ

Contents

1 ์ค€๋น„
2 jsosdep.h ์ˆ˜์ •
3 makefile ์ž‘์„ฑ
4 ๋นŒ๋“œํ•˜๊ธฐ
5 ์ฃผ์˜์‚ฌํ•ญ
  • ์ •์‹ ๋ฐฐํฌ๋ณธ์—์„œ๋Š” MinGW ๋นŒ๋“œ makefile์ด ์—†๋”๊ตฐ์š”. ์—ด์‹ฌํžˆ ์„œํ•‘ํ•ด๋ณด๋‹ˆ [http]์—ฌ๊ธฐ์—์„œ ๋‹จ์„œ๋ฅผ ์–ป์–ด ์ •๋ฆฌํ•ด๋ด…๋‹ˆ๋‹ค.

1 ์ค€๋น„ #

MinGW๋Š” ์„ค์น˜๋˜์–ด์žˆ๋‹ค๊ณ  ์น˜๊ณ , msys๋„ ์„ค์น˜๋˜์–ด์žˆ๋‹ค ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ํ•„์š”ํ•œ ์†Œ์Šคํ™”์ผ๋“ค์„ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์•„์•ผํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์œ„์น˜์—์„œ ๋‹ค์šด ๋ฐ›์Šต๋‹ˆ๋‹ค. ๊ทธ๋‹ค์Œ ์ ๋‹นํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ์••์ถ•์„ ํ’‰๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” c:/spidermonkey์— ์••์ถ•์„ ํ’€์—ˆ๋‹ค ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

2 jsosdep.h ์ˆ˜์ • #

js/src์•ˆ์—๋ณด๋ฉด jsosdep.hํ™”์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๋ฐ˜์„ ํ›‘์–ด๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.
#ifndef jsosdep_h___
#define jsosdep_h___
/*
 * OS (and machine, and compiler XXX) dependent information.
 */

#if defined(XP_WIN) || defined(XP_OS2)

#if defined(_WIN32) || defined (XP_OS2)
#define JS_HAVE_LONG_LONG
#else
#undef JS_HAVE_LONG_LONG
#endif
#endif /* XP_WIN || XP_OS2 */

#ifdef XP_MAC
#define JS_HAVE_LONG_LONG

JS_BEGIN_EXTERN_C

#include <stddef.h>
...

JS_BEGIN_EXTERN_C๋ฌธ์žฅ ๋ฐ”๋กœ ์œ„์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
#ifdef _MINGW
  #undef JS_HAVE_LONG_LONG
#else
  #define JS_HAVE_LONG_LONG
#endif

3 makefile ์ž‘์„ฑ #

spidermonkey ์†Œ์Šค์•ˆ์—๋Š” Mingw์šฉ makefile์ด ์—†์–ด์„œ ์ง์ ‘ ์ž‘์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‚ด์šฉ์„ jsmingw.mak๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
CC   = mingw32-gcc.exe
WINDRES = windres.exe
RES  = js.res
SRCDIR  = js/src
FDLIBM_SRCDIR   = js/src/fdlibm

FDLIBM_OBJECTS= \
        $(FDLIBM_SRCDIR)/w_sqrt.o \
        $(FDLIBM_SRCDIR)/e_pow.o \
        $(FDLIBM_SRCDIR)/e_sqrt.o \
        $(FDLIBM_SRCDIR)/k_standard.o \
        $(FDLIBM_SRCDIR)/s_atan.o \
        $(FDLIBM_SRCDIR)/s_finite.o \
        $(FDLIBM_SRCDIR)/s_isnan.o \
        $(FDLIBM_SRCDIR)/s_matherr.o \
        $(FDLIBM_SRCDIR)/s_rint.o \
        $(FDLIBM_SRCDIR)/s_scalbn.o \
        $(FDLIBM_SRCDIR)/w_atan2.o \
        $(FDLIBM_SRCDIR)/e_atan2.o \
        $(FDLIBM_SRCDIR)/s_fabs.o \
        $(FDLIBM_SRCDIR)/s_copysign.o \
        $(FDLIBM_SRCDIR)/w_pow.o \
        $(FDLIBM_SRCDIR)/s_lib_version.o

JS_OBJECTS = \
        $(SRCDIR)/jsapi.o \
        $(SRCDIR)/jsarena.o \
        $(SRCDIR)/jsarray.o \
        $(SRCDIR)/jsatom.o \
        $(SRCDIR)/jsbool.o \
        $(SRCDIR)/jscntxt.o \
        $(SRCDIR)/jsdate.o \
        $(SRCDIR)/jsdbgapi.o \
        $(SRCDIR)/jsdhash.o \
        $(SRCDIR)/jsdtoa.o \
        $(SRCDIR)/jsemit.o \
        $(SRCDIR)/jsexn.o \
        $(SRCDIR)/jsfun.o \
        $(SRCDIR)/jsgc.o \
        $(SRCDIR)/jshash.o \
        $(SRCDIR)/jsinterp.o \
        $(SRCDIR)/jslock.o \
        $(SRCDIR)/jslog2.o \
        $(SRCDIR)/jslong.o \
        $(SRCDIR)/jsmath.o \
        $(SRCDIR)/jsnum.o \
        $(SRCDIR)/jsobj.o \
        $(SRCDIR)/jsopcode.o \
        $(SRCDIR)/jsparse.o \
        $(SRCDIR)/jsprf.o \
        $(SRCDIR)/jsregexp.o \
        $(SRCDIR)/jsscan.o \
        $(SRCDIR)/jsscope.o \
        $(SRCDIR)/jsscript.o \
        $(SRCDIR)/jsstr.o \
        $(SRCDIR)/jsutil.o \
        $(SRCDIR)/jsxdrapi.o \
        $(SRCDIR)/prmjtime.o \
        $(RES)

LIBS = -L. --add-stdcall-alias
BIN  = js.dll
CFLAGS = -O2 -DXP_WIN -DEXPORT_JS_API -D_WINDOWS -DWIN32 -D_MINGW -s

DLLWRAP=dllwrap.exe
DEFFILE=libjs.def
LIBNAME=libjs.a

STATICLIBNAME=libjs_s.a

all: $(BIN) $(STATICLIBNAME)

.c.o:
        $(CC) -c $(CFLAGS) -o $@ $*.c

$(BIN): $(JS_OBJECTS) $(FDLIBM_OBJECTS)
        $(CC) -shared -o $@ \
        -Wl,--output-def,$(DEFFILE) \
        -Wl,--out-implib,$(LIBNAME) \
        $(JS_OBJECTS) $(FDLIBM_OBJECTS) \
        $(LIBS)

$(STATICLIBNAME): $(JS_OBJECTS) $(FDLIBM_OBJECTS)
        ar rs $(STATICLIBNAME) $(JS_OBJECTS) $(FDLIBM_OBJECTS)

$(RES):
        $(WINDRES) -i $(SRCDIR)/js3240.rc -I rc -o $(RES) -O coff

clean: $(JS_OBJECTS) $(FDLIBM_OBJECTS)
        rm $(JS_OBJECTS) $(FDLIBM_OBJECTS)

4 ๋นŒ๋“œํ•˜๊ธฐ #

์ด์ œ ์ค€๋น„๋Š” ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค.
make -f jsmingw.mak
c:/spidermonkey ํด๋”์— js.dll, libjs.a, libjs.def, libjs_s.aํ™”์ผ์ด ์ƒ์„ฑ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ libjs_s.a๋Š” ์ •์ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ณ (dllํ•„์š”์—†์Œ), ๋‚˜๋จธ์ง€๋Š” ๋™์ ๋งํฌ๋•Œ ํ•„์š”ํ•œ ํ™”์ผ๋“ค์ž…๋‹ˆ๋‹ค.

5 ์ฃผ์˜์‚ฌํ•ญ #

  • ์ปดํŒŒ์ผํ• ๋•Œ ์•„๋ž˜์˜ ์ปดํŒŒ์ผ ์˜ต์…˜์„ ๊ผญ ๋ถ™์—ฌ์ฃผ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
    CFLAGS = -O2 -DXP_WIN -DEXPORT_JS_API -D_WINDOWS -DWIN32 -D_MINGW -s
    

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-10-28 12:42:54
Processing time 0.5470 sec