The Squirrel interpreter. See http://www.squirrel-lang.org/

Dependents:   Squirrel

Committer:
jhnwkmn
Date:
Tue Dec 16 10:20:34 2014 +0000
Revision:
0:97a4f8cc534c
Initial import of Squirrel.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jhnwkmn 0:97a4f8cc534c 1 # Microsoft Developer Studio Project File - Name="squirrel" - Package Owner=<4>
jhnwkmn 0:97a4f8cc534c 2 # Microsoft Developer Studio Generated Build File, Format Version 6.00
jhnwkmn 0:97a4f8cc534c 3 # ** DO NOT EDIT **
jhnwkmn 0:97a4f8cc534c 4
jhnwkmn 0:97a4f8cc534c 5 # TARGTYPE "Win32 (x86) Static Library" 0x0104
jhnwkmn 0:97a4f8cc534c 6
jhnwkmn 0:97a4f8cc534c 7 CFG=squirrel - Win32 Debug
jhnwkmn 0:97a4f8cc534c 8 !MESSAGE This is not a valid makefile. To build this project using NMAKE,
jhnwkmn 0:97a4f8cc534c 9 !MESSAGE use the Export Makefile command and run
jhnwkmn 0:97a4f8cc534c 10 !MESSAGE
jhnwkmn 0:97a4f8cc534c 11 !MESSAGE NMAKE /f "squirrel.mak".
jhnwkmn 0:97a4f8cc534c 12 !MESSAGE
jhnwkmn 0:97a4f8cc534c 13 !MESSAGE You can specify a configuration when running NMAKE
jhnwkmn 0:97a4f8cc534c 14 !MESSAGE by defining the macro CFG on the command line. For example:
jhnwkmn 0:97a4f8cc534c 15 !MESSAGE
jhnwkmn 0:97a4f8cc534c 16 !MESSAGE NMAKE /f "squirrel.mak" CFG="squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 17 !MESSAGE
jhnwkmn 0:97a4f8cc534c 18 !MESSAGE Possible choices for configuration are:
jhnwkmn 0:97a4f8cc534c 19 !MESSAGE
jhnwkmn 0:97a4f8cc534c 20 !MESSAGE "squirrel - Win32 Release" (based on "Win32 (x86) Static Library")
jhnwkmn 0:97a4f8cc534c 21 !MESSAGE "squirrel - Win32 Debug" (based on "Win32 (x86) Static Library")
jhnwkmn 0:97a4f8cc534c 22 !MESSAGE
jhnwkmn 0:97a4f8cc534c 23
jhnwkmn 0:97a4f8cc534c 24 # Begin Project
jhnwkmn 0:97a4f8cc534c 25 # PROP AllowPerConfigDependencies 0
jhnwkmn 0:97a4f8cc534c 26 # PROP Scc_LocalPath ".."
jhnwkmn 0:97a4f8cc534c 27 CPP=cl.exe
jhnwkmn 0:97a4f8cc534c 28 RSC=rc.exe
jhnwkmn 0:97a4f8cc534c 29
jhnwkmn 0:97a4f8cc534c 30 !IF "$(CFG)" == "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 31
jhnwkmn 0:97a4f8cc534c 32 # PROP BASE Use_MFC 0
jhnwkmn 0:97a4f8cc534c 33 # PROP BASE Use_Debug_Libraries 0
jhnwkmn 0:97a4f8cc534c 34 # PROP BASE Output_Dir "Release"
jhnwkmn 0:97a4f8cc534c 35 # PROP BASE Intermediate_Dir "Release"
jhnwkmn 0:97a4f8cc534c 36 # PROP BASE Target_Dir ""
jhnwkmn 0:97a4f8cc534c 37 # PROP Use_MFC 0
jhnwkmn 0:97a4f8cc534c 38 # PROP Use_Debug_Libraries 0
jhnwkmn 0:97a4f8cc534c 39 # PROP Output_Dir "Release"
jhnwkmn 0:97a4f8cc534c 40 # PROP Intermediate_Dir "Release"
jhnwkmn 0:97a4f8cc534c 41 # PROP Target_Dir ""
jhnwkmn 0:97a4f8cc534c 42 # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
jhnwkmn 0:97a4f8cc534c 43 # ADD CPP /nologo /W3 /GX /O2 /I "..\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "GARBAGE_COLLECTOR" /YX /FD /c
jhnwkmn 0:97a4f8cc534c 44 # ADD BASE RSC /l 0x410 /d "NDEBUG"
jhnwkmn 0:97a4f8cc534c 45 # ADD RSC /l 0x410 /d "NDEBUG"
jhnwkmn 0:97a4f8cc534c 46 BSC32=bscmake.exe
jhnwkmn 0:97a4f8cc534c 47 # ADD BASE BSC32 /nologo
jhnwkmn 0:97a4f8cc534c 48 # ADD BSC32 /nologo
jhnwkmn 0:97a4f8cc534c 49 LIB32=link.exe -lib
jhnwkmn 0:97a4f8cc534c 50 # ADD BASE LIB32 /nologo
jhnwkmn 0:97a4f8cc534c 51 # ADD LIB32 /nologo /out:"..\lib\squirrel.lib"
jhnwkmn 0:97a4f8cc534c 52
jhnwkmn 0:97a4f8cc534c 53 !ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 54
jhnwkmn 0:97a4f8cc534c 55 # PROP BASE Use_MFC 0
jhnwkmn 0:97a4f8cc534c 56 # PROP BASE Use_Debug_Libraries 1
jhnwkmn 0:97a4f8cc534c 57 # PROP BASE Output_Dir "Debug"
jhnwkmn 0:97a4f8cc534c 58 # PROP BASE Intermediate_Dir "Debug"
jhnwkmn 0:97a4f8cc534c 59 # PROP BASE Target_Dir ""
jhnwkmn 0:97a4f8cc534c 60 # PROP Use_MFC 0
jhnwkmn 0:97a4f8cc534c 61 # PROP Use_Debug_Libraries 1
jhnwkmn 0:97a4f8cc534c 62 # PROP Output_Dir "Debug"
jhnwkmn 0:97a4f8cc534c 63 # PROP Intermediate_Dir "Debug"
jhnwkmn 0:97a4f8cc534c 64 # PROP Target_Dir ""
jhnwkmn 0:97a4f8cc534c 65 # ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
jhnwkmn 0:97a4f8cc534c 66 # ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
jhnwkmn 0:97a4f8cc534c 67 # ADD BASE RSC /l 0x410 /d "_DEBUG"
jhnwkmn 0:97a4f8cc534c 68 # ADD RSC /l 0x410 /d "_DEBUG"
jhnwkmn 0:97a4f8cc534c 69 BSC32=bscmake.exe
jhnwkmn 0:97a4f8cc534c 70 # ADD BASE BSC32 /nologo
jhnwkmn 0:97a4f8cc534c 71 # ADD BSC32 /nologo
jhnwkmn 0:97a4f8cc534c 72 LIB32=link.exe -lib
jhnwkmn 0:97a4f8cc534c 73 # ADD BASE LIB32 /nologo
jhnwkmn 0:97a4f8cc534c 74 # ADD LIB32 /nologo /out:"..\lib\squirrel.lib"
jhnwkmn 0:97a4f8cc534c 75
jhnwkmn 0:97a4f8cc534c 76 !ENDIF
jhnwkmn 0:97a4f8cc534c 77
jhnwkmn 0:97a4f8cc534c 78 # Begin Target
jhnwkmn 0:97a4f8cc534c 79
jhnwkmn 0:97a4f8cc534c 80 # Name "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 81 # Name "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 82 # Begin Group "Source Files"
jhnwkmn 0:97a4f8cc534c 83
jhnwkmn 0:97a4f8cc534c 84 # PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
jhnwkmn 0:97a4f8cc534c 85 # Begin Source File
jhnwkmn 0:97a4f8cc534c 86
jhnwkmn 0:97a4f8cc534c 87 SOURCE=.\sqapi.cpp
jhnwkmn 0:97a4f8cc534c 88
jhnwkmn 0:97a4f8cc534c 89 !IF "$(CFG)" == "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 90
jhnwkmn 0:97a4f8cc534c 91 !ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 92
jhnwkmn 0:97a4f8cc534c 93 # ADD CPP /YX"stdafx.h"
jhnwkmn 0:97a4f8cc534c 94
jhnwkmn 0:97a4f8cc534c 95 !ENDIF
jhnwkmn 0:97a4f8cc534c 96
jhnwkmn 0:97a4f8cc534c 97 # End Source File
jhnwkmn 0:97a4f8cc534c 98 # Begin Source File
jhnwkmn 0:97a4f8cc534c 99
jhnwkmn 0:97a4f8cc534c 100 SOURCE=.\sqbaselib.cpp
jhnwkmn 0:97a4f8cc534c 101
jhnwkmn 0:97a4f8cc534c 102 !IF "$(CFG)" == "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 103
jhnwkmn 0:97a4f8cc534c 104 !ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 105
jhnwkmn 0:97a4f8cc534c 106 # ADD CPP /YX"stdafx.h"
jhnwkmn 0:97a4f8cc534c 107
jhnwkmn 0:97a4f8cc534c 108 !ENDIF
jhnwkmn 0:97a4f8cc534c 109
jhnwkmn 0:97a4f8cc534c 110 # End Source File
jhnwkmn 0:97a4f8cc534c 111 # Begin Source File
jhnwkmn 0:97a4f8cc534c 112
jhnwkmn 0:97a4f8cc534c 113 SOURCE=.\sqcompiler.cpp
jhnwkmn 0:97a4f8cc534c 114
jhnwkmn 0:97a4f8cc534c 115 !IF "$(CFG)" == "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 116
jhnwkmn 0:97a4f8cc534c 117 !ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 118
jhnwkmn 0:97a4f8cc534c 119 # ADD CPP /YX"stdafx.h"
jhnwkmn 0:97a4f8cc534c 120
jhnwkmn 0:97a4f8cc534c 121 !ENDIF
jhnwkmn 0:97a4f8cc534c 122
jhnwkmn 0:97a4f8cc534c 123 # End Source File
jhnwkmn 0:97a4f8cc534c 124 # Begin Source File
jhnwkmn 0:97a4f8cc534c 125
jhnwkmn 0:97a4f8cc534c 126 SOURCE=.\sqdebug.cpp
jhnwkmn 0:97a4f8cc534c 127
jhnwkmn 0:97a4f8cc534c 128 !IF "$(CFG)" == "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 129
jhnwkmn 0:97a4f8cc534c 130 !ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 131
jhnwkmn 0:97a4f8cc534c 132 # ADD CPP /YX"stdafx.h"
jhnwkmn 0:97a4f8cc534c 133
jhnwkmn 0:97a4f8cc534c 134 !ENDIF
jhnwkmn 0:97a4f8cc534c 135
jhnwkmn 0:97a4f8cc534c 136 # End Source File
jhnwkmn 0:97a4f8cc534c 137 # Begin Source File
jhnwkmn 0:97a4f8cc534c 138
jhnwkmn 0:97a4f8cc534c 139 SOURCE=.\sqfuncstate.cpp
jhnwkmn 0:97a4f8cc534c 140
jhnwkmn 0:97a4f8cc534c 141 !IF "$(CFG)" == "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 142
jhnwkmn 0:97a4f8cc534c 143 !ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 144
jhnwkmn 0:97a4f8cc534c 145 # ADD CPP /YX"stdafx.h"
jhnwkmn 0:97a4f8cc534c 146
jhnwkmn 0:97a4f8cc534c 147 !ENDIF
jhnwkmn 0:97a4f8cc534c 148
jhnwkmn 0:97a4f8cc534c 149 # End Source File
jhnwkmn 0:97a4f8cc534c 150 # Begin Source File
jhnwkmn 0:97a4f8cc534c 151
jhnwkmn 0:97a4f8cc534c 152 SOURCE=.\sqlexer.cpp
jhnwkmn 0:97a4f8cc534c 153
jhnwkmn 0:97a4f8cc534c 154 !IF "$(CFG)" == "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 155
jhnwkmn 0:97a4f8cc534c 156 !ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 157
jhnwkmn 0:97a4f8cc534c 158 # ADD CPP /YX"stdafx.h"
jhnwkmn 0:97a4f8cc534c 159
jhnwkmn 0:97a4f8cc534c 160 !ENDIF
jhnwkmn 0:97a4f8cc534c 161
jhnwkmn 0:97a4f8cc534c 162 # End Source File
jhnwkmn 0:97a4f8cc534c 163 # Begin Source File
jhnwkmn 0:97a4f8cc534c 164
jhnwkmn 0:97a4f8cc534c 165 SOURCE=.\sqmem.cpp
jhnwkmn 0:97a4f8cc534c 166 # End Source File
jhnwkmn 0:97a4f8cc534c 167 # Begin Source File
jhnwkmn 0:97a4f8cc534c 168
jhnwkmn 0:97a4f8cc534c 169 SOURCE=.\sqobject.cpp
jhnwkmn 0:97a4f8cc534c 170
jhnwkmn 0:97a4f8cc534c 171 !IF "$(CFG)" == "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 172
jhnwkmn 0:97a4f8cc534c 173 !ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 174
jhnwkmn 0:97a4f8cc534c 175 # ADD CPP /YX"stdafx.h"
jhnwkmn 0:97a4f8cc534c 176
jhnwkmn 0:97a4f8cc534c 177 !ENDIF
jhnwkmn 0:97a4f8cc534c 178
jhnwkmn 0:97a4f8cc534c 179 # End Source File
jhnwkmn 0:97a4f8cc534c 180 # Begin Source File
jhnwkmn 0:97a4f8cc534c 181
jhnwkmn 0:97a4f8cc534c 182 SOURCE=.\sqstate.cpp
jhnwkmn 0:97a4f8cc534c 183
jhnwkmn 0:97a4f8cc534c 184 !IF "$(CFG)" == "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 185
jhnwkmn 0:97a4f8cc534c 186 !ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 187
jhnwkmn 0:97a4f8cc534c 188 # ADD CPP /YX"stdafx.h"
jhnwkmn 0:97a4f8cc534c 189
jhnwkmn 0:97a4f8cc534c 190 !ENDIF
jhnwkmn 0:97a4f8cc534c 191
jhnwkmn 0:97a4f8cc534c 192 # End Source File
jhnwkmn 0:97a4f8cc534c 193 # Begin Source File
jhnwkmn 0:97a4f8cc534c 194
jhnwkmn 0:97a4f8cc534c 195 SOURCE=.\sqtable.cpp
jhnwkmn 0:97a4f8cc534c 196
jhnwkmn 0:97a4f8cc534c 197 !IF "$(CFG)" == "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 198
jhnwkmn 0:97a4f8cc534c 199 !ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 200
jhnwkmn 0:97a4f8cc534c 201 # ADD CPP /YX"stdafx.h"
jhnwkmn 0:97a4f8cc534c 202
jhnwkmn 0:97a4f8cc534c 203 !ENDIF
jhnwkmn 0:97a4f8cc534c 204
jhnwkmn 0:97a4f8cc534c 205 # End Source File
jhnwkmn 0:97a4f8cc534c 206 # Begin Source File
jhnwkmn 0:97a4f8cc534c 207
jhnwkmn 0:97a4f8cc534c 208 SOURCE=.\sqclass.cpp
jhnwkmn 0:97a4f8cc534c 209
jhnwkmn 0:97a4f8cc534c 210 !IF "$(CFG)" == "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 211
jhnwkmn 0:97a4f8cc534c 212 !ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 213
jhnwkmn 0:97a4f8cc534c 214 # ADD CPP /YX"stdafx.h"
jhnwkmn 0:97a4f8cc534c 215
jhnwkmn 0:97a4f8cc534c 216 !ENDIF
jhnwkmn 0:97a4f8cc534c 217
jhnwkmn 0:97a4f8cc534c 218 # End Source File
jhnwkmn 0:97a4f8cc534c 219 # Begin Source File
jhnwkmn 0:97a4f8cc534c 220
jhnwkmn 0:97a4f8cc534c 221 SOURCE=.\sqvm.cpp
jhnwkmn 0:97a4f8cc534c 222
jhnwkmn 0:97a4f8cc534c 223 !IF "$(CFG)" == "squirrel - Win32 Release"
jhnwkmn 0:97a4f8cc534c 224
jhnwkmn 0:97a4f8cc534c 225 !ELSEIF "$(CFG)" == "squirrel - Win32 Debug"
jhnwkmn 0:97a4f8cc534c 226
jhnwkmn 0:97a4f8cc534c 227 # ADD CPP /YX"stdafx.h"
jhnwkmn 0:97a4f8cc534c 228
jhnwkmn 0:97a4f8cc534c 229 !ENDIF
jhnwkmn 0:97a4f8cc534c 230
jhnwkmn 0:97a4f8cc534c 231 # End Source File
jhnwkmn 0:97a4f8cc534c 232 # End Group
jhnwkmn 0:97a4f8cc534c 233 # Begin Group "Header Files"
jhnwkmn 0:97a4f8cc534c 234
jhnwkmn 0:97a4f8cc534c 235 # PROP Default_Filter "h;hpp;hxx;hm;inl"
jhnwkmn 0:97a4f8cc534c 236 # Begin Source File
jhnwkmn 0:97a4f8cc534c 237
jhnwkmn 0:97a4f8cc534c 238 SOURCE=.\sqarray.h
jhnwkmn 0:97a4f8cc534c 239 # End Source File
jhnwkmn 0:97a4f8cc534c 240 # Begin Source File
jhnwkmn 0:97a4f8cc534c 241
jhnwkmn 0:97a4f8cc534c 242 SOURCE=.\sqclosure.h
jhnwkmn 0:97a4f8cc534c 243 # End Source File
jhnwkmn 0:97a4f8cc534c 244 # Begin Source File
jhnwkmn 0:97a4f8cc534c 245
jhnwkmn 0:97a4f8cc534c 246 SOURCE=.\sqcompiler.h
jhnwkmn 0:97a4f8cc534c 247 # End Source File
jhnwkmn 0:97a4f8cc534c 248 # Begin Source File
jhnwkmn 0:97a4f8cc534c 249
jhnwkmn 0:97a4f8cc534c 250 SOURCE=.\sqfuncproto.h
jhnwkmn 0:97a4f8cc534c 251 # End Source File
jhnwkmn 0:97a4f8cc534c 252 # Begin Source File
jhnwkmn 0:97a4f8cc534c 253
jhnwkmn 0:97a4f8cc534c 254 SOURCE=.\sqfuncstate.h
jhnwkmn 0:97a4f8cc534c 255 # End Source File
jhnwkmn 0:97a4f8cc534c 256 # Begin Source File
jhnwkmn 0:97a4f8cc534c 257
jhnwkmn 0:97a4f8cc534c 258 SOURCE=.\sqlexer.h
jhnwkmn 0:97a4f8cc534c 259 # End Source File
jhnwkmn 0:97a4f8cc534c 260 # Begin Source File
jhnwkmn 0:97a4f8cc534c 261
jhnwkmn 0:97a4f8cc534c 262 SOURCE=.\sqobject.h
jhnwkmn 0:97a4f8cc534c 263 # End Source File
jhnwkmn 0:97a4f8cc534c 264 # Begin Source File
jhnwkmn 0:97a4f8cc534c 265
jhnwkmn 0:97a4f8cc534c 266 SOURCE=.\sqopcodes.h
jhnwkmn 0:97a4f8cc534c 267 # End Source File
jhnwkmn 0:97a4f8cc534c 268 # Begin Source File
jhnwkmn 0:97a4f8cc534c 269
jhnwkmn 0:97a4f8cc534c 270 SOURCE=.\sqpcheader.h
jhnwkmn 0:97a4f8cc534c 271 # End Source File
jhnwkmn 0:97a4f8cc534c 272 # Begin Source File
jhnwkmn 0:97a4f8cc534c 273
jhnwkmn 0:97a4f8cc534c 274 SOURCE=.\sqstate.h
jhnwkmn 0:97a4f8cc534c 275 # End Source File
jhnwkmn 0:97a4f8cc534c 276 # Begin Source File
jhnwkmn 0:97a4f8cc534c 277
jhnwkmn 0:97a4f8cc534c 278 SOURCE=.\sqstring.h
jhnwkmn 0:97a4f8cc534c 279 # End Source File
jhnwkmn 0:97a4f8cc534c 280 # Begin Source File
jhnwkmn 0:97a4f8cc534c 281
jhnwkmn 0:97a4f8cc534c 282 SOURCE=.\sqtable.h
jhnwkmn 0:97a4f8cc534c 283 # End Source File
jhnwkmn 0:97a4f8cc534c 284 # Begin Source File
jhnwkmn 0:97a4f8cc534c 285
jhnwkmn 0:97a4f8cc534c 286 SOURCE=.\squserdata.h
jhnwkmn 0:97a4f8cc534c 287 # End Source File
jhnwkmn 0:97a4f8cc534c 288 # Begin Source File
jhnwkmn 0:97a4f8cc534c 289
jhnwkmn 0:97a4f8cc534c 290 SOURCE=.\squtils.h
jhnwkmn 0:97a4f8cc534c 291 # End Source File
jhnwkmn 0:97a4f8cc534c 292 # Begin Source File
jhnwkmn 0:97a4f8cc534c 293
jhnwkmn 0:97a4f8cc534c 294 SOURCE=.\sqclass.h
jhnwkmn 0:97a4f8cc534c 295 # End Source File
jhnwkmn 0:97a4f8cc534c 296 # Begin Source File
jhnwkmn 0:97a4f8cc534c 297
jhnwkmn 0:97a4f8cc534c 298 SOURCE=.\sqvm.h
jhnwkmn 0:97a4f8cc534c 299 # End Source File
jhnwkmn 0:97a4f8cc534c 300 # End Group
jhnwkmn 0:97a4f8cc534c 301 # End Target
jhnwkmn 0:97a4f8cc534c 302 # End Project