diff options
Diffstat (limited to 'src/Makefile')
-rw-r--r-- | src/Makefile | 71 |
1 files changed, 44 insertions, 27 deletions
diff --git a/src/Makefile b/src/Makefile index 1cddf188..3f25192b 100644 --- a/src/Makefile +++ b/src/Makefile | |||
@@ -11,8 +11,8 @@ | |||
11 | ############################################################################## | 11 | ############################################################################## |
12 | 12 | ||
13 | MAJVER= 2 | 13 | MAJVER= 2 |
14 | MINVER= 0 | 14 | MINVER= 1 |
15 | RELVER= 4 | 15 | RELVER= 0 |
16 | ABIVER= 5.1 | 16 | ABIVER= 5.1 |
17 | NODOTABIVER= 51 | 17 | NODOTABIVER= 51 |
18 | 18 | ||
@@ -44,17 +44,14 @@ CCOPT= -O2 -fomit-frame-pointer | |||
44 | # | 44 | # |
45 | # Target-specific compiler options: | 45 | # Target-specific compiler options: |
46 | # | 46 | # |
47 | # x86 only: it's recommended to compile at least for i686. Better yet, | ||
48 | # compile for an architecture that has SSE2, too (-msse -msse2). | ||
49 | # | ||
50 | # x86/x64 only: For GCC 4.2 or higher and if you don't intend to distribute | 47 | # x86/x64 only: For GCC 4.2 or higher and if you don't intend to distribute |
51 | # the binaries to a different machine you could also use: -march=native | 48 | # the binaries to a different machine you could also use: -march=native |
52 | # | 49 | # |
53 | CCOPT_x86= -march=i686 | 50 | CCOPT_x86= -march=i686 -msse -msse2 -mfpmath=sse |
54 | CCOPT_x64= | 51 | CCOPT_x64= |
55 | CCOPT_arm= | 52 | CCOPT_arm= |
53 | CCOPT_arm64= | ||
56 | CCOPT_ppc= | 54 | CCOPT_ppc= |
57 | CCOPT_ppcspe= | ||
58 | CCOPT_mips= | 55 | CCOPT_mips= |
59 | # | 56 | # |
60 | CCDEBUG= | 57 | CCDEBUG= |
@@ -190,7 +187,8 @@ endif | |||
190 | # make HOST_CC="gcc -m32" CROSS=i586-mingw32msvc- TARGET_SYS=Windows | 187 | # make HOST_CC="gcc -m32" CROSS=i586-mingw32msvc- TARGET_SYS=Windows |
191 | # make HOST_CC="gcc -m32" CROSS=powerpc-linux-gnu- | 188 | # make HOST_CC="gcc -m32" CROSS=powerpc-linux-gnu- |
192 | 189 | ||
193 | CCOPTIONS= $(CCDEBUG) $(CCOPT) $(CCWARN) $(XCFLAGS) $(CFLAGS) | 190 | ASOPTIONS= $(CCOPT) $(CCWARN) $(XCFLAGS) $(CFLAGS) |
191 | CCOPTIONS= $(CCDEBUG) $(ASOPTIONS) | ||
194 | LDOPTIONS= $(CCDEBUG) $(LDFLAGS) | 192 | LDOPTIONS= $(CCDEBUG) $(LDFLAGS) |
195 | 193 | ||
196 | HOST_CC= $(CC) | 194 | HOST_CC= $(CC) |
@@ -229,6 +227,7 @@ TARGET_XLDFLAGS= | |||
229 | TARGET_XLIBS= -lm | 227 | TARGET_XLIBS= -lm |
230 | TARGET_TCFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) | 228 | TARGET_TCFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) |
231 | TARGET_ACFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) | 229 | TARGET_ACFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) |
230 | TARGET_ASFLAGS= $(ASOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) | ||
232 | TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_FLAGS) $(TARGET_LDFLAGS) | 231 | TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_FLAGS) $(TARGET_LDFLAGS) |
233 | TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_FLAGS) $(TARGET_SHLDFLAGS) | 232 | TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_FLAGS) $(TARGET_SHLDFLAGS) |
234 | TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS) | 233 | TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS) |
@@ -243,12 +242,17 @@ else | |||
243 | ifneq (,$(findstring LJ_TARGET_ARM ,$(TARGET_TESTARCH))) | 242 | ifneq (,$(findstring LJ_TARGET_ARM ,$(TARGET_TESTARCH))) |
244 | TARGET_LJARCH= arm | 243 | TARGET_LJARCH= arm |
245 | else | 244 | else |
245 | ifneq (,$(findstring LJ_TARGET_ARM64 ,$(TARGET_TESTARCH))) | ||
246 | TARGET_LJARCH= arm64 | ||
247 | else | ||
246 | ifneq (,$(findstring LJ_TARGET_PPC ,$(TARGET_TESTARCH))) | 248 | ifneq (,$(findstring LJ_TARGET_PPC ,$(TARGET_TESTARCH))) |
249 | ifneq (,$(findstring LJ_LE 1,$(TARGET_TESTARCH))) | ||
250 | TARGET_ARCH= -DLJ_ARCH_ENDIAN=LUAJIT_LE | ||
251 | else | ||
252 | TARGET_ARCH= -DLJ_ARCH_ENDIAN=LUAJIT_BE | ||
253 | endif | ||
247 | TARGET_LJARCH= ppc | 254 | TARGET_LJARCH= ppc |
248 | else | 255 | else |
249 | ifneq (,$(findstring LJ_TARGET_PPCSPE ,$(TARGET_TESTARCH))) | ||
250 | TARGET_LJARCH= ppcspe | ||
251 | else | ||
252 | ifneq (,$(findstring LJ_TARGET_MIPS ,$(TARGET_TESTARCH))) | 256 | ifneq (,$(findstring LJ_TARGET_MIPS ,$(TARGET_TESTARCH))) |
253 | ifneq (,$(findstring MIPSEL ,$(TARGET_TESTARCH))) | 257 | ifneq (,$(findstring MIPSEL ,$(TARGET_TESTARCH))) |
254 | TARGET_ARCH= -D__MIPSEL__=1 | 258 | TARGET_ARCH= -D__MIPSEL__=1 |
@@ -267,6 +271,7 @@ ifneq (,$(findstring LJ_TARGET_PS3 1,$(TARGET_TESTARCH))) | |||
267 | TARGET_SYS= PS3 | 271 | TARGET_SYS= PS3 |
268 | TARGET_ARCH+= -D__CELLOS_LV2__ | 272 | TARGET_ARCH+= -D__CELLOS_LV2__ |
269 | TARGET_XCFLAGS+= -DLUAJIT_USE_SYSMALLOC | 273 | TARGET_XCFLAGS+= -DLUAJIT_USE_SYSMALLOC |
274 | TARGET_XLIBS+= -lpthread | ||
270 | endif | 275 | endif |
271 | 276 | ||
272 | TARGET_XCFLAGS+= $(CCOPT_$(TARGET_LJARCH)) | 277 | TARGET_XCFLAGS+= $(CCOPT_$(TARGET_LJARCH)) |
@@ -320,6 +325,9 @@ ifeq (iOS,$(TARGET_SYS)) | |||
320 | TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC | 325 | TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC |
321 | TARGET_DYNXLDOPTS= | 326 | TARGET_DYNXLDOPTS= |
322 | TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER) | 327 | TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER) |
328 | ifeq (arm64,$(TARGET_LJARCH)) | ||
329 | TARGET_XCFLAGS+= -fno-omit-frame-pointer | ||
330 | endif | ||
323 | else | 331 | else |
324 | ifneq (SunOS,$(TARGET_SYS)) | 332 | ifneq (SunOS,$(TARGET_SYS)) |
325 | ifneq (PS3,$(TARGET_SYS)) | 333 | ifneq (PS3,$(TARGET_SYS)) |
@@ -380,6 +388,11 @@ DASM_XFLAGS= | |||
380 | DASM_AFLAGS= | 388 | DASM_AFLAGS= |
381 | DASM_ARCH= $(TARGET_LJARCH) | 389 | DASM_ARCH= $(TARGET_LJARCH) |
382 | 390 | ||
391 | ifneq (,$(findstring LJ_LE 1,$(TARGET_TESTARCH))) | ||
392 | DASM_AFLAGS+= -D ENDIAN_LE | ||
393 | else | ||
394 | DASM_AFLAGS+= -D ENDIAN_BE | ||
395 | endif | ||
383 | ifneq (,$(findstring LJ_ARCH_BITS 64,$(TARGET_TESTARCH))) | 396 | ifneq (,$(findstring LJ_ARCH_BITS 64,$(TARGET_TESTARCH))) |
384 | DASM_AFLAGS+= -D P64 | 397 | DASM_AFLAGS+= -D P64 |
385 | endif | 398 | endif |
@@ -412,13 +425,10 @@ DASM_AFLAGS+= -D VER=$(subst LJ_ARCH_VERSION_,,$(filter LJ_ARCH_VERSION_%,$(subs | |||
412 | ifeq (Windows,$(TARGET_SYS)) | 425 | ifeq (Windows,$(TARGET_SYS)) |
413 | DASM_AFLAGS+= -D WIN | 426 | DASM_AFLAGS+= -D WIN |
414 | endif | 427 | endif |
415 | ifeq (x86,$(TARGET_LJARCH)) | ||
416 | ifneq (,$(findstring __SSE2__ 1,$(TARGET_TESTARCH))) | ||
417 | DASM_AFLAGS+= -D SSE | ||
418 | endif | ||
419 | else | ||
420 | ifeq (x64,$(TARGET_LJARCH)) | 428 | ifeq (x64,$(TARGET_LJARCH)) |
421 | DASM_ARCH= x86 | 429 | ifeq (,$(findstring LJ_FR2 1,$(TARGET_TESTARCH))) |
430 | DASM_ARCH= x86 | ||
431 | endif | ||
422 | else | 432 | else |
423 | ifeq (arm,$(TARGET_LJARCH)) | 433 | ifeq (arm,$(TARGET_LJARCH)) |
424 | ifeq (iOS,$(TARGET_SYS)) | 434 | ifeq (iOS,$(TARGET_SYS)) |
@@ -432,13 +442,15 @@ ifeq (ppc,$(TARGET_LJARCH)) | |||
432 | ifneq (,$(findstring LJ_ARCH_ROUND 1,$(TARGET_TESTARCH))) | 442 | ifneq (,$(findstring LJ_ARCH_ROUND 1,$(TARGET_TESTARCH))) |
433 | DASM_AFLAGS+= -D ROUND | 443 | DASM_AFLAGS+= -D ROUND |
434 | endif | 444 | endif |
435 | ifneq (,$(findstring LJ_ARCH_PPC64 1,$(TARGET_TESTARCH))) | 445 | ifneq (,$(findstring LJ_ARCH_PPC32ON64 1,$(TARGET_TESTARCH))) |
436 | DASM_AFLAGS+= -D GPR64 | 446 | DASM_AFLAGS+= -D GPR64 |
437 | endif | 447 | endif |
438 | ifeq (PS3,$(TARGET_SYS)) | 448 | ifeq (PS3,$(TARGET_SYS)) |
439 | DASM_AFLAGS+= -D PPE -D TOC | 449 | DASM_AFLAGS+= -D PPE -D TOC |
440 | endif | 450 | endif |
441 | endif | 451 | ifneq (,$(findstring LJ_ARCH_PPC64 ,$(TARGET_TESTARCH))) |
452 | DASM_ARCH= ppc64 | ||
453 | endif | ||
442 | endif | 454 | endif |
443 | endif | 455 | endif |
444 | endif | 456 | endif |
@@ -454,7 +466,7 @@ BUILDVM_X= $(BUILDVM_T) | |||
454 | HOST_O= $(MINILUA_O) $(BUILDVM_O) | 466 | HOST_O= $(MINILUA_O) $(BUILDVM_O) |
455 | HOST_T= $(MINILUA_T) $(BUILDVM_T) | 467 | HOST_T= $(MINILUA_T) $(BUILDVM_T) |
456 | 468 | ||
457 | LJVM_S= lj_vm.s | 469 | LJVM_S= lj_vm.S |
458 | LJVM_O= lj_vm.o | 470 | LJVM_O= lj_vm.o |
459 | LJVM_BOUT= $(LJVM_S) | 471 | LJVM_BOUT= $(LJVM_S) |
460 | LJVM_MODE= elfasm | 472 | LJVM_MODE= elfasm |
@@ -463,10 +475,11 @@ LJLIB_O= lib_base.o lib_math.o lib_bit.o lib_string.o lib_table.o \ | |||
463 | lib_io.o lib_os.o lib_package.o lib_debug.o lib_jit.o lib_ffi.o | 475 | lib_io.o lib_os.o lib_package.o lib_debug.o lib_jit.o lib_ffi.o |
464 | LJLIB_C= $(LJLIB_O:.o=.c) | 476 | LJLIB_C= $(LJLIB_O:.o=.c) |
465 | 477 | ||
466 | LJCORE_O= lj_gc.o lj_err.o lj_char.o lj_bc.o lj_obj.o \ | 478 | LJCORE_O= lj_gc.o lj_err.o lj_char.o lj_bc.o lj_obj.o lj_buf.o \ |
467 | lj_str.o lj_tab.o lj_func.o lj_udata.o lj_meta.o lj_debug.o \ | 479 | lj_str.o lj_tab.o lj_func.o lj_udata.o lj_meta.o lj_debug.o \ |
468 | lj_state.o lj_dispatch.o lj_vmevent.o lj_vmmath.o lj_strscan.o \ | 480 | lj_state.o lj_dispatch.o lj_vmevent.o lj_vmmath.o lj_strscan.o \ |
469 | lj_api.o lj_lex.o lj_parse.o lj_bcread.o lj_bcwrite.o lj_load.o \ | 481 | lj_strfmt.o lj_strfmt_num.o lj_api.o lj_profile.o \ |
482 | lj_lex.o lj_parse.o lj_bcread.o lj_bcwrite.o lj_load.o \ | ||
470 | lj_ir.o lj_opt_mem.o lj_opt_fold.o lj_opt_narrow.o \ | 483 | lj_ir.o lj_opt_mem.o lj_opt_fold.o lj_opt_narrow.o \ |
471 | lj_opt_dce.o lj_opt_loop.o lj_opt_split.o lj_opt_sink.o \ | 484 | lj_opt_dce.o lj_opt_loop.o lj_opt_split.o lj_opt_sink.o \ |
472 | lj_mcode.o lj_snap.o lj_record.o lj_crecord.o lj_ffrecord.o \ | 485 | lj_mcode.o lj_snap.o lj_record.o lj_crecord.o lj_ffrecord.o \ |
@@ -586,6 +599,10 @@ amalg: | |||
586 | clean: | 599 | clean: |
587 | $(HOST_RM) $(ALL_RM) | 600 | $(HOST_RM) $(ALL_RM) |
588 | 601 | ||
602 | libbc: | ||
603 | ./$(LUAJIT_T) host/genlibbc.lua -o host/buildvm_libbc.h $(LJLIB_C) | ||
604 | $(MAKE) all | ||
605 | |||
589 | depend: | 606 | depend: |
590 | @for file in $(ALL_HDRGEN); do \ | 607 | @for file in $(ALL_HDRGEN); do \ |
591 | test -f $$file || touch $$file; \ | 608 | test -f $$file || touch $$file; \ |
@@ -600,7 +617,7 @@ depend: | |||
600 | test -s $$file || $(HOST_RM) $$file; \ | 617 | test -s $$file || $(HOST_RM) $$file; \ |
601 | done | 618 | done |
602 | 619 | ||
603 | .PHONY: default all amalg clean depend | 620 | .PHONY: default all amalg clean libbc depend |
604 | 621 | ||
605 | ############################################################################## | 622 | ############################################################################## |
606 | # Rules for generated files. | 623 | # Rules for generated files. |
@@ -610,7 +627,7 @@ $(MINILUA_T): $(MINILUA_O) | |||
610 | $(E) "HOSTLINK $@" | 627 | $(E) "HOSTLINK $@" |
611 | $(Q)$(HOST_CC) $(HOST_ALDFLAGS) -o $@ $(MINILUA_O) $(MINILUA_LIBS) $(HOST_ALIBS) | 628 | $(Q)$(HOST_CC) $(HOST_ALDFLAGS) -o $@ $(MINILUA_O) $(MINILUA_LIBS) $(HOST_ALIBS) |
612 | 629 | ||
613 | host/buildvm_arch.h: $(DASM_DASC) $(DASM_DEP) | 630 | host/buildvm_arch.h: $(DASM_DASC) $(DASM_DEP) $(DASM_DIR)/*.lua |
614 | $(E) "DYNASM $@" | 631 | $(E) "DYNASM $@" |
615 | $(Q)$(DASM) $(DASM_FLAGS) -o $@ $(DASM_DASC) | 632 | $(Q)$(DASM) $(DASM_FLAGS) -o $@ $(DASM_DASC) |
616 | 633 | ||
@@ -657,10 +674,10 @@ lj_folddef.h: $(BUILDVM_T) lj_opt_fold.c | |||
657 | $(Q)$(TARGET_DYNCC) $(TARGET_ACFLAGS) -c -o $(@:.o=_dyn.o) $< | 674 | $(Q)$(TARGET_DYNCC) $(TARGET_ACFLAGS) -c -o $(@:.o=_dyn.o) $< |
658 | $(Q)$(TARGET_CC) $(TARGET_ACFLAGS) -c -o $@ $< | 675 | $(Q)$(TARGET_CC) $(TARGET_ACFLAGS) -c -o $@ $< |
659 | 676 | ||
660 | %.o: %.s | 677 | %.o: %.S |
661 | $(E) "ASM $@" | 678 | $(E) "ASM $@" |
662 | $(Q)$(TARGET_DYNCC) $(TARGET_ACFLAGS) -c -o $(@:.o=_dyn.o) $< | 679 | $(Q)$(TARGET_DYNCC) $(TARGET_ASFLAGS) -c -o $(@:.o=_dyn.o) $< |
663 | $(Q)$(TARGET_CC) $(TARGET_ACFLAGS) -c -o $@ $< | 680 | $(Q)$(TARGET_CC) $(TARGET_ASFLAGS) -c -o $@ $< |
664 | 681 | ||
665 | $(LUAJIT_O): | 682 | $(LUAJIT_O): |
666 | $(E) "CC $@" | 683 | $(E) "CC $@" |