Bumping the PLT count back to 5.
[WebKit-https.git] / JavaScriptCore / Makefile.vc
1 NULL=
2 BASEDIR=.
3 BINDIR=bin
4 OBJDIR=obj
5 KJSDIR=kjs
6 PCREDIR=pcre
7
8 ICUDIR=$(BASEDIR)\..\..\icu
9
10 #
11 # Define compiler flags
12 #
13 CC = cl.exe
14 CFLAGS = $(CFLAGS) /nologo
15 # 4996 - deprecated function, only needed for VS 2005 in which a lot
16 #  of C standard functions that cause security risks (strcat, strcpy,
17 #  printf etc.) were declared deprecated)
18 # 4138 - */ found outside of comment
19 # 4355 'this' : used in  base member initializer list
20 CFLAGS = $(CFLAGS) /wd4138 /wd4996 /wd4355
21 CFLAGS = $(CFLAGS) /D "HAVE_CONFIG_H"
22 CFLAGS = $(CFLAGS) /D "WIN32" /D "__STD_C"
23 CFLAGS = $(CFLAGS) /D "_MBCS" /D "_REENTRANT" /EHsc /W1
24 CFLAGS = $(CFLAGS) /I$(BASEDIR)\os-win32
25 CFLAGS = $(CFLAGS) /I$(BASEDIR)\pcre
26 CFLAGS = $(CFLAGS) /I$(KJSDIR)
27 CFLAGS = $(CFLAGS) /I$(ICUDIR)\include
28
29 # /Zm increases max memory used by the compiler. It's for VC6 and compiling chartables.c
30 #CFLAGS = $(CFLAGS) /Zm300
31
32 !if "$(DEBUG)"=="1"
33 CFLAGS = $(CFLAGS) /MDd /Od /Zi
34 !else
35 CFLAGS = $(CFLAGS) /D "NDEBUG" /MD /Zi
36 !endif
37
38 #
39 # Define linker flags
40 #
41 LD = link.exe
42 LDFLAGS = $(LDFLAGS) /nologo
43 LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(ICUDIR)\lib
44 #LIBS = $(LIBS) icuin.lib icudt.lib icuio.lib icuuc.lib
45 TESTKJS_LIBS = $(LIBS) jscore.lib
46 LIBS = $(LIBS) icuuc.lib
47
48 !if "$(DEBUG)"=="1"
49 LDFLAGS = $(LDFLAGS) /DEBUG
50 !else
51 LDFLAGS = $(LDFLAGS) /OPT:NOWIN98 /DEBUG
52 !endif
53
54 #
55 # Archiver flags
56 #
57 AR       = lib.exe
58 ARFLAGS  = $(ARFLAGS) /nologo
59
60 PCRE_OBJS=\
61     $(OBJDIR)\pcre.obj \
62     $(NULL)
63
64 #
65 # jscore.dll
66 #
67 JSCORE_DLL_OBJS=\
68     $(OBJDIR)\array_object.obj \
69     $(OBJDIR)\bool_object.obj \
70     $(OBJDIR)\collector.obj \
71     $(OBJDIR)\date_object.obj \
72     $(OBJDIR)\debugger.obj \
73     $(OBJDIR)\dtoa.obj \
74     $(OBJDIR)\error_object.obj \
75     $(OBJDIR)\fast_malloc.obj \
76     $(OBJDIR)\fpconst.obj \
77     $(OBJDIR)\function.obj \
78     $(OBJDIR)\function_object.obj \
79     $(OBJDIR)\grammar.obj \
80     $(OBJDIR)\identifier.obj \
81     $(OBJDIR)\internal.obj \
82     $(OBJDIR)\interpreter.obj \
83     $(OBJDIR)\interpreter_map.obj \
84     $(OBJDIR)\lexer.obj \
85     $(OBJDIR)\list.obj \
86     $(OBJDIR)\lookup.obj \
87     $(OBJDIR)\math_object.obj \
88     $(OBJDIR)\nodes.obj \
89     $(OBJDIR)\nodes2string.obj \
90     $(OBJDIR)\number_object.obj \
91     $(OBJDIR)\object.obj \
92     $(OBJDIR)\object_object.obj \
93     $(OBJDIR)\operations.obj \
94     $(OBJDIR)\property_map.obj \
95     $(OBJDIR)\property_slot.obj \
96     $(OBJDIR)\protected_values.obj \
97     $(OBJDIR)\reference.obj \
98     $(OBJDIR)\reference_list.obj \
99     $(OBJDIR)\regexp.obj \
100     $(OBJDIR)\regexp_object.obj \
101     $(OBJDIR)\scope_chain.obj \
102     $(OBJDIR)\string_object.obj \
103     $(OBJDIR)\ustring.obj \
104     $(OBJDIR)\value.obj \
105     $(NULL)
106
107 JSCORE_DLL_NAME=jscore.dll
108 JSCORE_DLL_LIB_NAME=jscore.lib
109
110 TESTKJS_OBJS=\
111     $(OBJDIR)\testkjs.obj \
112     $(NULL)
113
114 TESTKJS_EXE_NAME=testkjs.exe
115 TESTKJS_PDB_NAME=testkjs.pdb
116
117 #all: $(BINDIR)\$(JSCORE_DLL_NAME)
118
119 all: $(BINDIR)\$(TESTKJS_EXE_NAME)
120
121 clean:
122     if exist $(OBJDIR) rmdir /S /Q $(OBJDIR)
123     if exist $(BINDIR) rmdir /S /Q $(BINDIR)
124
125 $(OBJDIR):
126     if not exist $(OBJDIR) mkdir $(OBJDIR)
127
128 $(BINDIR):
129     if not exist $(BINDIR) mkdir $(BINDIR)
130
131 #
132 # jscore DLL
133 #
134 $(BINDIR)\$(JSCORE_DLL_NAME) : $(BINDIR) $(PCRE_OBJS) $(JSCORE_DLL_OBJS) $(BASEDIR)\jscore.def
135 #       $(LD) $(LDFLAGS) $(LIBS) /DLL /DEF:$(BASEDIR)\jscore.def \
136        $(LD) $(LDFLAGS) $(LIBS) /DLL \
137                $(PCRE_OBJS) $(JSCORE_DLL_OBJS) \
138                /IMPLIB:$(BINDIR)\$(JSCORE_DLL_LIB_NAME) \
139                /OUT:$(BINDIR)\$(JSCORE_DLL_NAME)
140
141 $(BINDIR)\icuuc32.dll :
142     copy $(ICUDIR)\bin\icuuc34.dll $(BINDIR)
143
144 $(BINDIR)\icudt32.dll :
145     copy $(ICUDIR)\bin\icudt34.dll $(BINDIR)
146
147 $(BINDIR)\$(TESTKJS_EXE_NAME) : $(BINDIR) $(PCRE_OBJS) $(JSCORE_DLL_OBJS) $(TESTKJS_OBJS) \
148         $(BINDIR)\icudt32.dll \
149         $(BINDIR)\icuuc32.dll
150     $(LD) $(LDFLAGS) $(LIBS) \
151         $(PCRE_OBJS) $(JSCORE_DLL_OBJS) \
152         $(TESTKJS_OBJS) \
153         /PDB:$(BINDIR)\$(TESTKJS_PDB_NAME) \
154         /OUT:$(BINDIR)\$(TESTKJS_EXE_NAME)
155
156 $(JSCORE_DLL_OBJS) : $(OBJDIR)
157
158 {$(BASEDIR)\kjs}.cpp{$(OBJDIR)}.obj::
159        $(CC) $(CFLAGS) /Fo$(OBJDIR)\ /c $<
160
161 {$(BASEDIR)\pcre}.c{$(OBJDIR)}.obj::
162        $(CC) $(CFLAGS) /Fo$(OBJDIR)\ /c /Tp $<