diff options
| author | Mike Pall <mike> | 2009-12-08 19:49:20 +0100 |
|---|---|---|
| committer | Mike Pall <mike> | 2009-12-08 19:49:20 +0100 |
| commit | 1d1fed48a002dfc0919135911057ebc255a53e0a (patch) | |
| tree | c5c6643908374bb8f02f4c7691332d32f6645986 /src/Makefile | |
| parent | 55b16959717084884fd4a0cbae6d19e3786c20c7 (diff) | |
| download | luajit-2.0.0-beta2.tar.gz luajit-2.0.0-beta2.tar.bz2 luajit-2.0.0-beta2.zip | |
RELEASE LuaJIT-2.0.0-beta2v2.0.0-beta2
Diffstat (limited to '')
| -rw-r--r-- | src/Makefile | 322 | ||||
| -rw-r--r-- | src/Makefile.dep | 4 |
2 files changed, 218 insertions, 108 deletions
diff --git a/src/Makefile b/src/Makefile index bb1839d1..c0deb774 100644 --- a/src/Makefile +++ b/src/Makefile | |||
| @@ -8,10 +8,17 @@ | |||
| 8 | # Copyright (C) 2005-2009 Mike Pall. See Copyright Notice in luajit.h | 8 | # Copyright (C) 2005-2009 Mike Pall. See Copyright Notice in luajit.h |
| 9 | ############################################################################## | 9 | ############################################################################## |
| 10 | 10 | ||
| 11 | MAJVER= 2 | ||
| 12 | MINVER= 0 | ||
| 13 | RELVER= 0 | ||
| 14 | ABIVER= 5.1 | ||
| 15 | NODOTABIVER= 51 | ||
| 16 | |||
| 11 | ############################################################################## | 17 | ############################################################################## |
| 12 | # Compiler options: change them as needed. This mainly affects the speed of | 18 | # Compiler options: change them as needed. This mainly affects the speed of |
| 13 | # the JIT compiler itself, not the speed of the JIT compiled code. | 19 | # the JIT compiler itself, not the speed of the JIT compiled code. |
| 14 | # Turn any of the optional settings on by removing the '#' in front of them. | 20 | # Turn any of the optional settings on by removing the '#' in front of them. |
| 21 | # You need to 'make clean' and 'make' again, if you change any options. | ||
| 15 | # | 22 | # |
| 16 | # Note: LuaJIT can only be compiled for x86, and not for x64 (yet)! | 23 | # Note: LuaJIT can only be compiled for x86, and not for x64 (yet)! |
| 17 | # In the meantime, the x86 binary runs fine under a x64 OS. | 24 | # In the meantime, the x86 binary runs fine under a x64 OS. |
| @@ -81,89 +88,142 @@ XCFLAGS= | |||
| 81 | #XCFLAGS+= -DLUA_USE_ASSERT | 88 | #XCFLAGS+= -DLUA_USE_ASSERT |
| 82 | # | 89 | # |
| 83 | ############################################################################## | 90 | ############################################################################## |
| 91 | |||
| 92 | ############################################################################## | ||
| 93 | # Build mode: override the mode as needed. Default is mixed mode on POSIX. | ||
| 94 | # On Windows this is the same as dynamic mode. | ||
| 95 | # | ||
| 96 | # Mixed mode creates a static + dynamic library and a statically linked luajit. | ||
| 97 | BUILDMODE= mixed | ||
| 98 | # | ||
| 99 | # Static mode creates a static library and a statically linked luajit. | ||
| 100 | #BUILDMODE= static | ||
| 101 | # | ||
| 102 | # Dynamic mode creates a dynamic library and a dynamically linked luajit. | ||
| 103 | # Note: this executable will only run when the library is installed! | ||
| 104 | #BUILDMODE= dynamic | ||
| 105 | ############################################################################## | ||
| 84 | # You probably don't need to change anything below this line. | 106 | # You probably don't need to change anything below this line. |
| 85 | ############################################################################## | 107 | ############################################################################## |
| 86 | 108 | ||
| 109 | ############################################################################## | ||
| 110 | # Flags and options for host and target. | ||
| 111 | ############################################################################## | ||
| 112 | |||
| 87 | CCOPTIONS= $(CCDEBUG) $(CCOPT) $(CCWARN) $(CFLAGS) $(XCFLAGS) | 113 | CCOPTIONS= $(CCDEBUG) $(CCOPT) $(CCWARN) $(CFLAGS) $(XCFLAGS) |
| 88 | LDOPTIONS= $(CCDEBUG) $(LDFLAGS) | 114 | LDOPTIONS= $(CCDEBUG) $(LDFLAGS) |
| 89 | 115 | ||
| 90 | HOST_CC= $(CC) | 116 | HOST_CC= $(CC) |
| 91 | HOST_RM= rm -f | 117 | HOST_RM= rm -f |
| 118 | # NOTE: The LuaJIT distribution comes with a pre-generated buildvm_*.h. | ||
| 119 | # You DO NOT NEED an installed copy of (plain) Lua 5.1 to run DynASM unless | ||
| 120 | # you want to MODIFY the corresponding *.dasc file. You can also use LuaJIT | ||
| 121 | # itself (bootstrapped from the pre-generated file) to run DynASM of course. | ||
| 122 | HOST_LUA= lua | ||
| 123 | |||
| 92 | HOST_XCFLAGS= | 124 | HOST_XCFLAGS= |
| 93 | HOST_XLDFLAGS= | 125 | HOST_XLDFLAGS= |
| 94 | HOST_XLIBS= | 126 | HOST_XLIBS= |
| 127 | HOST_CFLAGS= $(CCOPTIONS) $(HOST_XCFLAGS) $(TARGET_ARCH) | ||
| 128 | HOST_LDFLAGS= $(LDOPTIONS) $(HOST_XLDFLAGS) | ||
| 129 | HOST_LIBS= $(HOST_XLIBS) | ||
| 130 | |||
| 131 | # Cross-compilation example: make CROSS=i586-mingw32msvc- TARGET_SYS=Windows | ||
| 132 | CROSS= | ||
| 133 | STATIC_CC = $(CROSS)$(CC) | ||
| 134 | DYNAMIC_CC = $(CROSS)$(CC) -fPIC | ||
| 135 | TARGET_CC= $(STATIC_CC) | ||
| 136 | TARGET_STCC= $(STATIC_CC) | ||
| 137 | TARGET_DYNCC= $(DYNAMIC_CC) | ||
| 138 | TARGET_LD= $(CROSS)$(CC) | ||
| 139 | TARGET_AR= $(CROSS)ar rcus | ||
| 140 | TARGET_STRIP= $(CROSS)strip | ||
| 141 | |||
| 142 | TARGET_SONAME= libluajit-$(ABIVER).so.$(MAJVER) | ||
| 143 | TARGET_DYLIBNAME= libluajit-$(NODOTABIVER).$(MAJVER).$(MINVER).$(RELVER).dylib | ||
| 144 | TARGET_DLLNAME= lua$(NODOTABIVER).dll | ||
| 145 | TARGET_XSHLDFLAGS= -shared -fPIC -Wl,-soname,$(TARGET_SONAME) | ||
| 146 | TARGET_DYNXLDOPTS= | ||
| 95 | 147 | ||
| 96 | TARGET_CC= $(CC) | ||
| 97 | TARGET_STRIP= strip | ||
| 98 | TARGET_XCFLAGS= -D_FILE_OFFSET_BITS=64 | ||
| 99 | TARGET_XLDFLAGS= | ||
| 100 | TARGET_XSHLDFLAGS= -shared | ||
| 101 | TARGET_XLIBS= | ||
| 102 | TARGET_ARCH= $(patsubst %,-DLUAJIT_TARGET=LUAJIT_ARCH_%,$(TARGET)) | 148 | TARGET_ARCH= $(patsubst %,-DLUAJIT_TARGET=LUAJIT_ARCH_%,$(TARGET)) |
| 103 | TARGET_DISABLE= -U_FORTIFY_SOURCE | 149 | TARGET_DISABLE= -U_FORTIFY_SOURCE |
| 104 | ifneq (,$(findstring stack-protector,$(shell $(CC) -dumpspecs))) | 150 | ifneq (,$(findstring stack-protector,$(shell $(TARGET_CC) -dumpspecs))) |
| 105 | TARGET_DISABLE+= -fno-stack-protector | 151 | TARGET_DISABLE+= -fno-stack-protector |
| 106 | endif | 152 | endif |
| 107 | 153 | ||
| 154 | TARGET_XCFLAGS= -D_FILE_OFFSET_BITS=64 | ||
| 155 | TARGET_XLDFLAGS= | ||
| 156 | TARGET_XLDOPTS= | ||
| 157 | TARGET_XLIBS= | ||
| 158 | TARGET_CFLAGS= $(CCOPTIONS) $(TARGET_DISABLE) $(TARGET_XCFLAGS) | ||
| 159 | TARGET_LDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_XLDOPTS) | ||
| 160 | TARGET_SHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) | ||
| 161 | TARGET_LIBS= -lm $(TARGET_XLIBS) | ||
| 162 | |||
| 163 | ifneq (,$(PREFIX)) | ||
| 164 | ifneq (/usr/local,$(PREFIX)) | ||
| 165 | TARGET_XCFLAGS+= -DLUA_XROOT=\"$(PREFIX)/\" | ||
| 166 | ifneq (/usr,$(PREFIX)) | ||
| 167 | TARGET_DYNXLDOPTS= -Wl,-rpath,$(PREFIX)/lib | ||
| 168 | endif | ||
| 169 | endif | ||
| 170 | endif | ||
| 171 | |||
| 172 | ############################################################################## | ||
| 173 | # System detection. | ||
| 174 | ############################################################################## | ||
| 175 | |||
| 108 | ifneq (,$(findstring Windows,$(OS))) | 176 | ifneq (,$(findstring Windows,$(OS))) |
| 109 | TARGET_SYS= Windows | 177 | HOST_SYS= Windows |
| 110 | else | 178 | else |
| 111 | TARGET_SYS:= $(shell uname -s) | 179 | HOST_SYS:= $(shell uname -s) |
| 112 | ifneq (,$(findstring CYGWIN,$(TARGET_SYS))) | 180 | ifneq (,$(findstring CYGWIN,$(TARGET_SYS))) |
| 113 | TARGET_SYS= Windows | 181 | HOST_SYS= Windows |
| 114 | endif | 182 | endif |
| 115 | endif | 183 | endif |
| 184 | ifeq (Windows,$(HOST_SYS)) | ||
| 185 | HOST_RM= del | ||
| 186 | endif | ||
| 116 | 187 | ||
| 117 | ifeq (Linux,$(TARGET_SYS)) | 188 | TARGET_SYS= $(HOST_SYS) |
| 118 | TARGET_XLIBS= -ldl | ||
| 119 | TARGET_XLDFLAGS= -Wl,-E | ||
| 120 | else | ||
| 121 | ifeq (Windows,$(TARGET_SYS)) | 189 | ifeq (Windows,$(TARGET_SYS)) |
| 122 | HOST_RM= del | 190 | TARGET_STRIP+= --strip-unneeded |
| 123 | TARGET_STRIP= strip --strip-unneeded | 191 | TARGET_XSHLDFLAGS= -shared |
| 192 | TARGET_DYNXLDOPTS= | ||
| 124 | else | 193 | else |
| 125 | ifeq (Darwin,$(TARGET_SYS)) | 194 | ifeq (Darwin,$(TARGET_SYS)) |
| 126 | TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup | 195 | export MACOSX_DEPLOYMENT_TARGET=10.4 |
| 127 | TARGET_STRIP= strip -x | 196 | TARGET_STRIP+= -x |
| 128 | export MACOSX_DEPLOYMENT_TARGET=10.3 | 197 | TARGET_AR+= 2>/dev/null |
| 198 | TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC | ||
| 199 | ifneq (,$(TARGET_DYNXLDOPTS)) | ||
| 200 | TARGET_DYNXLDOPTS= | ||
| 201 | TARGET_XSHLDFLAGS+= -install_name $(PREFIX)/lib/$(TARGET_DYLIBNAME) | ||
| 202 | endif | ||
| 129 | else | 203 | else |
| 130 | TARGET_XLDFLAGS= -Wl,-E | 204 | TARGET_XLDFLAGS= -Wl,-E |
| 205 | ifeq (Linux,$(TARGET_SYS)) | ||
| 206 | TARGET_XLIBS= -ldl | ||
| 207 | endif | ||
| 131 | endif | 208 | endif |
| 132 | endif | 209 | endif |
| 133 | endif | ||
| 134 | |||
| 135 | # NOTE: The LuaJIT distribution comes with a pre-generated buildvm_*.h. | ||
| 136 | # You DO NOT NEED an installed copy of (plain) Lua 5.1 to run DynASM unless | ||
| 137 | # you want to MODIFY the corresponding *.dasc file. You can also use LuaJIT | ||
| 138 | # itself (bootstrapped from the pre-generated file) to run DynASM of course. | ||
| 139 | DASM_LUA= lua | ||
| 140 | |||
| 141 | Q= @ | ||
| 142 | E= @echo | ||
| 143 | #Q= | ||
| 144 | #E= @: | ||
| 145 | |||
| 146 | ############################################################################## | ||
| 147 | 210 | ||
| 148 | TARGET_CFLAGS= $(CCOPTIONS) $(TARGET_DISABLE) $(TARGET_XCFLAGS) | ||
| 149 | TARGET_LDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) | ||
| 150 | TARGET_SHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) | ||
| 151 | TARGET_LIBS= -lm $(TARGET_XLIBS) | ||
| 152 | ifneq (,$(CCDEBUG)) | 211 | ifneq (,$(CCDEBUG)) |
| 153 | TARGET_STRIP= @: | 212 | TARGET_STRIP= @: |
| 154 | endif | 213 | endif |
| 155 | 214 | ||
| 156 | HOST_CFLAGS= $(CCOPTIONS) $(HOST_XCFLAGS) $(TARGET_ARCH) | 215 | ############################################################################## |
| 157 | HOST_LDFLAGS= $(LDOPTIONS) $(HOST_XLDFLAGS) | 216 | # Files and pathnames. |
| 158 | HOST_LIBS= $(HOST_XLIBS) | 217 | ############################################################################## |
| 159 | 218 | ||
| 160 | DASM_DIR= ../dynasm | 219 | DASM_DIR= ../dynasm |
| 161 | DASM= $(DASM_LUA) $(DASM_DIR)/dynasm.lua | 220 | DASM= $(HOST_LUA) $(DASM_DIR)/dynasm.lua |
| 162 | DASM_FLAGS= | 221 | DASM_FLAGS= |
| 163 | DASM_DISTFLAGS= -LN | 222 | DASM_DISTFLAGS= -LN |
| 164 | 223 | ||
| 165 | BUILDVM_O= buildvm.o buildvm_asm.o buildvm_peobj.o buildvm_lib.o buildvm_fold.o | 224 | BUILDVM_O= buildvm.o buildvm_asm.o buildvm_peobj.o buildvm_lib.o buildvm_fold.o |
| 166 | BUILDVM_T= buildvm | 225 | BUILDVM_T= buildvm |
| 226 | BUILDVM_X= ./$(BUILDVM_T) | ||
| 167 | 227 | ||
| 168 | HOST_O= $(BUILDVM_O) | 228 | HOST_O= $(BUILDVM_O) |
| 169 | HOST_T= $(BUILDVM_T) | 229 | HOST_T= $(BUILDVM_T) |
| @@ -188,54 +248,114 @@ LJCORE_O= lj_gc.o lj_err.o lj_ctype.o lj_bc.o lj_obj.o \ | |||
| 188 | $(LJLIB_O) lib_init.o | 248 | $(LJLIB_O) lib_init.o |
| 189 | 249 | ||
| 190 | LJVMCORE_O= $(LJVM_O) $(LJCORE_O) | 250 | LJVMCORE_O= $(LJVM_O) $(LJCORE_O) |
| 251 | LJVMCORE_DYNO= $(LJVMCORE_O:.o=_dyn.o) | ||
| 252 | |||
| 253 | LIB_VMDEF= ../lib/vmdef.lua | ||
| 254 | LIB_VMDEFP= $(LIB_VMDEF) | ||
| 191 | 255 | ||
| 192 | # NYI: Need complete support for building as a shared library on POSIX. | ||
| 193 | # This is currently *only* suitable for MinGW and Cygwin, see below. | ||
| 194 | LUAJIT_O= luajit.o | 256 | LUAJIT_O= luajit.o |
| 195 | LUAJIT_SO= luajit.so | 257 | LUAJIT_A= libluajit.a |
| 258 | LUAJIT_SO= libluajit.so | ||
| 196 | LUAJIT_T= luajit | 259 | LUAJIT_T= luajit |
| 197 | 260 | ||
| 198 | LIB_VMDEF= ../lib/vmdef.lua | 261 | ALL_T= $(LUAJIT_T) $(LUAJIT_A) $(LUAJIT_SO) $(BUILDVM_T) |
| 262 | ALL_GEN= $(LJVM_S) lj_ffdef.h lj_libdef.h lj_recdef.h $(LIB_VMDEFP) lj_folddef.h | ||
| 263 | ALL_DYNGEN= buildvm_x86.h | ||
| 264 | WIN_RM= *.obj *.lib *.exp *.dll *.exe *.manifest *.pdb *.ilk | ||
| 265 | ALL_RM= $(ALL_T) $(ALL_GEN) *.o $(WIN_RM) | ||
| 199 | 266 | ||
| 200 | TARGET_DEP= $(LIB_VMDEF) | 267 | ############################################################################## |
| 201 | TARGET_O= $(LJVMCORE_O) $(LUAJIT_O) | 268 | # Build mode handling. |
| 202 | TARGET_T= $(LUAJIT_T) | 269 | ############################################################################## |
| 203 | 270 | ||
| 204 | ALL_GEN= $(LJVM_S) lj_ffdef.h lj_libdef.h lj_recdef.h $(LIB_VMDEF) lj_folddef.h | 271 | # Mixed mode defaults. |
| 205 | ALL_DYNGEN= buildvm_x86.h | 272 | TARGET_O= $(LUAJIT_A) |
| 206 | WIN_RM= *.obj *.lib *.exp *.dll *.exe *.manifest | 273 | TARGET_T= $(LUAJIT_T) $(LUAJIT_SO) |
| 207 | ALL_RM= $(LUAJIT_T) $(LUAJIT_SO) $(HOST_T) $(ALL_GEN) *.o $(WIN_RM) | 274 | TARGET_DEP= $(LIB_VMDEF) $(LUAJIT_SO) |
| 208 | 275 | ||
| 276 | ifeq (Windows,$(HOST_SYS)) | ||
| 277 | BUILDVM_T= buildvm.exe | ||
| 278 | LIB_VMDEFP= $(subst /,\\,$(LIB_VMDEF)) | ||
| 279 | endif | ||
| 209 | ifeq (Windows,$(TARGET_SYS)) | 280 | ifeq (Windows,$(TARGET_SYS)) |
| 281 | DYNAMIC_CC= $(STATIC_CC) | ||
| 210 | LJVM_BOUT= $(LJVM_O) | 282 | LJVM_BOUT= $(LJVM_O) |
| 211 | LJVM_MODE= peobj | 283 | LJVM_MODE= peobj |
| 212 | LIB_VMDEF= ..\lib\vmdef.lua | 284 | LUAJIT_SO= $(TARGET_DLLNAME) |
| 213 | # Imported symbols are bound to a specific DLL name under Windows. | ||
| 214 | LUAJIT_SO= lua51.dll | ||
| 215 | LUAJIT_T= luajit.exe | 285 | LUAJIT_T= luajit.exe |
| 216 | BUILDVM_T= buildvm.exe | 286 | ifneq ($(HOST_SYS),$(TARGET_SYS)) |
| 217 | # | 287 | HOST_XCFLAGS+= -malign-double |
| 218 | # You can comment out the following two lines to build a static executable. | 288 | endif |
| 219 | # But then you won't be able to dynamically load any C modules, because | 289 | # Mixed mode is not supported on Windows. And static mode doesn't work well. |
| 220 | # they bind to lua51.dll. | 290 | # C modules cannot be loaded, because they bind to lua51.dll. |
| 221 | # | 291 | ifneq (static,$(BUILDMODE)) |
| 222 | TARGET_XCFLAGS+= -DLUA_BUILD_AS_DLL | 292 | BUILDMODE= dynamic |
| 223 | TARGET_O= $(LUAJIT_SO) $(LUAJIT_O) | 293 | TARGET_XCFLAGS+= -DLUA_BUILD_AS_DLL |
| 294 | endif | ||
| 224 | endif | 295 | endif |
| 225 | 296 | ||
| 226 | ############################################################################## | 297 | ifeq (static,$(BUILDMODE)) |
| 298 | TARGET_DYNCC= @: | ||
| 299 | TARGET_T= $(LUAJIT_T) | ||
| 300 | TARGET_DEP= $(LIB_VMDEF) | ||
| 301 | else | ||
| 302 | ifeq (dynamic,$(BUILDMODE)) | ||
| 303 | TARGET_CC= $(DYNAMIC_CC) | ||
| 304 | TARGET_DYNCC= @: | ||
| 305 | LJVMCORE_DYNO= $(LJVMCORE_O) | ||
| 306 | TARGET_O= $(LUAJIT_SO) | ||
| 307 | TARGET_XLDOPTS= $(TARGET_DYNXLDOPTS) | ||
| 308 | else | ||
| 309 | ifeq (Darwin,$(TARGET_SYS)) | ||
| 310 | TARGET_DYNCC= @: | ||
| 311 | LJVMCORE_DYNO= $(LJVMCORE_O) | ||
| 312 | endif | ||
| 313 | endif | ||
| 314 | endif | ||
| 227 | 315 | ||
| 228 | default: $(TARGET_T) | 316 | Q= @ |
| 317 | E= @echo | ||
| 318 | #Q= | ||
| 319 | #E= @: | ||
| 229 | 320 | ||
| 230 | all: $(TARGET_T) | 321 | ############################################################################## |
| 322 | # Make targets. | ||
| 323 | ############################################################################## | ||
| 324 | |||
| 325 | default all: $(TARGET_T) | ||
| 231 | 326 | ||
| 232 | amalg: | 327 | amalg: |
| 233 | @grep "^[+|]" ljamalg.c | 328 | @grep "^[+|]" ljamalg.c |
| 234 | $(MAKE) all "LJCORE_O=ljamalg.o" | 329 | $(MAKE) all "LJCORE_O=ljamalg.o" |
| 235 | 330 | ||
| 236 | MAKE_TARGETS= amalg | 331 | clean: |
| 332 | $(HOST_RM) $(ALL_RM) | ||
| 333 | |||
| 334 | cleaner: | ||
| 335 | $(HOST_RM) $(ALL_RM) $(ALL_DYNGEN) | ||
| 336 | |||
| 337 | distclean: clean | ||
| 338 | $(E) "DYNASM $@" | ||
| 339 | $(Q)$(DASM) $(DASM_DISTFLAGS) -o buildvm_x86.h buildvm_x86.dasc | ||
| 340 | |||
| 341 | depend: | ||
| 342 | @test -f lj_ffdef.h || touch lj_ffdef.h | ||
| 343 | @test -f lj_libdef.h || touch lj_libdef.h | ||
| 344 | @test -f lj_recdef.h || touch lj_recdef.h | ||
| 345 | @test -f lj_folddef.h || touch lj_folddef.h | ||
| 346 | @test -f buildvm_x86.h || touch buildvm_x86.h | ||
| 347 | @$(HOST_CC) $(HOST_CFLAGS) -MM *.c | sed "s|$(DASM_DIR)|\$$(DASM_DIR)|g" >Makefile.dep | ||
| 348 | @test -s lj_ffdef.h || $(HOST_RM) lj_ffdef.h | ||
| 349 | @test -s lj_libdef.h || $(HOST_RM) lj_libdef.h | ||
| 350 | @test -s lj_recdef.h || $(HOST_RM) lj_recdef.h | ||
| 351 | @test -s lj_folddef.h || $(HOST_RM) lj_folddef.h | ||
| 352 | @test -s buildvm_x86.h || $(HOST_RM) buildvm_x86.h | ||
| 353 | |||
| 354 | .PHONY: default all amalg clean cleaner distclean depend | ||
| 237 | 355 | ||
| 238 | ############################################################################## | 356 | ############################################################################## |
| 357 | # Rules for generated files. | ||
| 358 | ############################################################################## | ||
| 239 | 359 | ||
| 240 | buildvm_x86.h: buildvm_x86.dasc | 360 | buildvm_x86.h: buildvm_x86.dasc |
| 241 | $(E) "DYNASM $@" | 361 | $(E) "DYNASM $@" |
| @@ -247,49 +367,46 @@ $(BUILDVM_T): $(BUILDVM_O) | |||
| 247 | 367 | ||
| 248 | $(LJVM_BOUT): $(BUILDVM_T) | 368 | $(LJVM_BOUT): $(BUILDVM_T) |
| 249 | $(E) "BUILDVM $@" | 369 | $(E) "BUILDVM $@" |
| 250 | $(Q)./$(BUILDVM_T) -m $(LJVM_MODE) -o $@ | 370 | $(Q)$(BUILDVM_X) -m $(LJVM_MODE) -o $@ |
| 251 | 371 | ||
| 252 | lj_ffdef.h: $(BUILDVM_T) $(LJLIB_C) | 372 | lj_ffdef.h: $(BUILDVM_T) $(LJLIB_C) |
| 253 | $(E) "BUILDVM $@" | 373 | $(E) "BUILDVM $@" |
| 254 | $(Q)./$(BUILDVM_T) -m ffdef -o $@ $(LJLIB_C) | 374 | $(Q)$(BUILDVM_X) -m ffdef -o $@ $(LJLIB_C) |
| 255 | 375 | ||
| 256 | lj_libdef.h: $(BUILDVM_T) $(LJLIB_C) | 376 | lj_libdef.h: $(BUILDVM_T) $(LJLIB_C) |
| 257 | $(E) "BUILDVM $@" | 377 | $(E) "BUILDVM $@" |
| 258 | $(Q)./$(BUILDVM_T) -m libdef -o $@ $(LJLIB_C) | 378 | $(Q)$(BUILDVM_X) -m libdef -o $@ $(LJLIB_C) |
| 259 | 379 | ||
| 260 | lj_recdef.h: $(BUILDVM_T) $(LJLIB_C) | 380 | lj_recdef.h: $(BUILDVM_T) $(LJLIB_C) |
| 261 | $(E) "BUILDVM $@" | 381 | $(E) "BUILDVM $@" |
| 262 | $(Q)./$(BUILDVM_T) -m recdef -o $@ $(LJLIB_C) | 382 | $(Q)$(BUILDVM_X) -m recdef -o $@ $(LJLIB_C) |
| 263 | 383 | ||
| 264 | $(LIB_VMDEF): $(BUILDVM_T) $(LJLIB_C) | 384 | $(LIB_VMDEF): $(BUILDVM_T) $(LJLIB_C) |
| 265 | $(E) "BUILDVM $@" | 385 | $(E) "BUILDVM $@" |
| 266 | $(Q)./$(BUILDVM_T) -m vmdef -o $@ $(LJLIB_C) | 386 | $(Q)$(BUILDVM_X) -m vmdef -o $(LIB_VMDEFP) $(LJLIB_C) |
| 267 | 387 | ||
| 268 | lj_folddef.h: $(BUILDVM_T) lj_opt_fold.c | 388 | lj_folddef.h: $(BUILDVM_T) lj_opt_fold.c |
| 269 | $(E) "BUILDVM $@" | 389 | $(E) "BUILDVM $@" |
| 270 | $(Q)./$(BUILDVM_T) -m folddef -o $@ lj_opt_fold.c | 390 | $(Q)$(BUILDVM_X) -m folddef -o $@ lj_opt_fold.c |
| 271 | |||
| 272 | $(LUAJIT_SO): $(LJVMCORE_O) | ||
| 273 | $(E) "LINK $@" | ||
| 274 | $(Q)$(TARGET_CC) $(TARGET_SHLDFLAGS) -o $@ $(LJVMCORE_O) $(TARGET_LIBS) | ||
| 275 | $(Q)$(TARGET_STRIP) $@ | ||
| 276 | |||
| 277 | $(LUAJIT_T): $(TARGET_O) $(TARGET_DEP) | ||
| 278 | $(E) "LINK $@" | ||
| 279 | $(Q)$(TARGET_CC) $(TARGET_LDFLAGS) -o $@ $(TARGET_O) $(TARGET_LIBS) | ||
| 280 | $(Q)$(TARGET_STRIP) $@ | ||
| 281 | $(E) "OK Successfully built LuaJIT" | ||
| 282 | 391 | ||
| 283 | ############################################################################## | 392 | ############################################################################## |
| 393 | # Object file rules. | ||
| 394 | ############################################################################## | ||
| 284 | 395 | ||
| 285 | %.o: %.c | 396 | %.o: %.c |
| 286 | $(E) "CC $@" | 397 | $(E) "CC $@" |
| 398 | $(Q)$(TARGET_DYNCC) $(TARGET_CFLAGS) -c -o $(@:.o=_dyn.o) $< | ||
| 287 | $(Q)$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ $< | 399 | $(Q)$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ $< |
| 288 | 400 | ||
| 289 | %.o: %.s | 401 | %.o: %.s |
| 290 | $(E) "ASM $@" | 402 | $(E) "ASM $@" |
| 403 | $(Q)$(TARGET_DYNCC) $(TARGET_CFLAGS) -c -o $(@:.o=_dyn.o) $< | ||
| 291 | $(Q)$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ $< | 404 | $(Q)$(TARGET_CC) $(TARGET_CFLAGS) -c -o $@ $< |
| 292 | 405 | ||
| 406 | $(LUAJIT_O): | ||
| 407 | $(E) "CC $@" | ||
| 408 | $(Q)$(TARGET_STCC) $(TARGET_CFLAGS) -c -o $@ $< | ||
| 409 | |||
| 293 | $(HOST_O): %.o: %.c | 410 | $(HOST_O): %.o: %.c |
| 294 | $(E) "HOSTCC $@" | 411 | $(E) "HOSTCC $@" |
| 295 | $(Q)$(HOST_CC) $(HOST_CFLAGS) -c -o $@ $< | 412 | $(Q)$(HOST_CC) $(HOST_CFLAGS) -c -o $@ $< |
| @@ -297,30 +414,23 @@ $(HOST_O): %.o: %.c | |||
| 297 | include Makefile.dep | 414 | include Makefile.dep |
| 298 | 415 | ||
| 299 | ############################################################################## | 416 | ############################################################################## |
| 417 | # Target file rules. | ||
| 418 | ############################################################################## | ||
| 300 | 419 | ||
| 301 | clean: | 420 | $(LUAJIT_A): $(LJVMCORE_O) |
| 302 | $(HOST_RM) $(ALL_RM) | 421 | $(E) "AR $@" |
| 303 | 422 | $(Q)$(TARGET_AR) $@ $(LJVMCORE_O) | |
| 304 | cleaner: clean | ||
| 305 | $(HOST_RM) $(ALL_DYNGEN) | ||
| 306 | 423 | ||
| 307 | distclean: clean | 424 | # The dependency on _O, but linking with _DYNO is intentional. |
| 308 | $(E) "DYNASM $@" | 425 | $(LUAJIT_SO): $(LJVMCORE_O) |
| 309 | $(Q)$(DASM) $(DASM_DISTFLAGS) -o buildvm_x86.h buildvm_x86.dasc | 426 | $(E) "DYNLINK $@" |
| 310 | 427 | $(Q)$(TARGET_LD) $(TARGET_SHLDFLAGS) -o $@ $(LJVMCORE_DYNO) $(TARGET_LIBS) | |
| 311 | depend: | 428 | $(Q)$(TARGET_STRIP) $@ |
| 312 | @test -f lj_ffdef.h || touch lj_ffdef.h | ||
| 313 | @test -f lj_libdef.h || touch lj_libdef.h | ||
| 314 | @test -f lj_recdef.h || touch lj_recdef.h | ||
| 315 | @test -f lj_folddef.h || touch lj_folddef.h | ||
| 316 | @test -f buildvm_x86.h || touch buildvm_x86.h | ||
| 317 | @$(HOST_CC) $(HOST_CFLAGS) -MM *.c | sed "s|$(DASM_DIR)|\$$(DASM_DIR)|g" >Makefile.dep | ||
| 318 | @test -s lj_ffdef.h || $(HOST_RM) lj_ffdef.h | ||
| 319 | @test -s lj_libdef.h || $(HOST_RM) lj_libdef.h | ||
| 320 | @test -s lj_recdef.h || $(HOST_RM) lj_recdef.h | ||
| 321 | @test -s lj_folddef.h || $(HOST_RM) lj_folddef.h | ||
| 322 | @test -s buildvm_x86.h || $(HOST_RM) buildvm_x86.h | ||
| 323 | 429 | ||
| 324 | .PHONY: default all $(MAKE_TARGETS) clean cleaner distclean depend | 430 | $(LUAJIT_T): $(TARGET_O) $(LUAJIT_O) $(TARGET_DEP) |
| 431 | $(E) "LINK $@" | ||
| 432 | $(Q)$(TARGET_LD) $(TARGET_LDFLAGS) -o $@ $(LUAJIT_O) $(TARGET_O) $(TARGET_LIBS) | ||
| 433 | $(Q)$(TARGET_STRIP) $@ | ||
| 434 | $(E) "OK Successfully built LuaJIT" | ||
| 325 | 435 | ||
| 326 | ############################################################################## | 436 | ############################################################################## |
diff --git a/src/Makefile.dep b/src/Makefile.dep index b1cdd93b..1fb81e27 100644 --- a/src/Makefile.dep +++ b/src/Makefile.dep | |||
| @@ -34,8 +34,8 @@ lib_os.o: lib_os.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h lj_def.h \ | |||
| 34 | lib_package.o: lib_package.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ | 34 | lib_package.o: lib_package.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ |
| 35 | lj_def.h lj_arch.h lj_err.h lj_errmsg.h lj_lib.h | 35 | lj_def.h lj_arch.h lj_err.h lj_errmsg.h lj_lib.h |
| 36 | lib_string.o: lib_string.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ | 36 | lib_string.o: lib_string.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ |
| 37 | lj_def.h lj_arch.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h lj_state.h \ | 37 | lj_def.h lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_str.h lj_tab.h \ |
| 38 | lj_ff.h lj_ffdef.h lj_ctype.h lj_lib.h lj_libdef.h | 38 | lj_state.h lj_ff.h lj_ffdef.h lj_ctype.h lj_lib.h lj_libdef.h |
| 39 | lib_table.o: lib_table.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ | 39 | lib_table.o: lib_table.c lua.h luaconf.h lauxlib.h lualib.h lj_obj.h \ |
| 40 | lj_def.h lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_tab.h lj_lib.h \ | 40 | lj_def.h lj_arch.h lj_gc.h lj_err.h lj_errmsg.h lj_tab.h lj_lib.h \ |
| 41 | lj_libdef.h | 41 | lj_libdef.h |
