diff options
Diffstat (limited to 'src/Makefile')
-rw-r--r-- | src/Makefile | 54 |
1 files changed, 29 insertions, 25 deletions
diff --git a/src/Makefile b/src/Makefile index 33b0a43b..71ab6ea0 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= 3 | 15 | RELVER= 0 |
16 | ABIVER= 5.1 | 16 | ABIVER= 5.1 |
17 | NODOTABIVER= 51 | 17 | NODOTABIVER= 51 |
18 | 18 | ||
@@ -42,17 +42,14 @@ CCOPT= -O2 -fomit-frame-pointer | |||
42 | # | 42 | # |
43 | # Target-specific compiler options: | 43 | # Target-specific compiler options: |
44 | # | 44 | # |
45 | # x86 only: it's recommended to compile at least for i686. Better yet, | ||
46 | # compile for an architecture that has SSE2, too (-msse -msse2). | ||
47 | # | ||
48 | # x86/x64 only: For GCC 4.2 or higher and if you don't intend to distribute | 45 | # x86/x64 only: For GCC 4.2 or higher and if you don't intend to distribute |
49 | # the binaries to a different machine you could also use: -march=native | 46 | # the binaries to a different machine you could also use: -march=native |
50 | # | 47 | # |
51 | CCOPT_x86= -march=i686 | 48 | CCOPT_x86= -march=i686 -msse -msse2 -mfpmath=sse |
52 | CCOPT_x64= | 49 | CCOPT_x64= |
53 | CCOPT_arm= | 50 | CCOPT_arm= |
51 | CCOPT_arm64= | ||
54 | CCOPT_ppc= | 52 | CCOPT_ppc= |
55 | CCOPT_ppcspe= | ||
56 | CCOPT_mips= | 53 | CCOPT_mips= |
57 | # | 54 | # |
58 | CCDEBUG= | 55 | CCDEBUG= |
@@ -165,7 +162,8 @@ XCFLAGS= | |||
165 | # make HOST_CC="gcc -m32" CROSS=i586-mingw32msvc- TARGET_SYS=Windows | 162 | # make HOST_CC="gcc -m32" CROSS=i586-mingw32msvc- TARGET_SYS=Windows |
166 | # make HOST_CC="gcc -m32" CROSS=powerpc-linux-gnu- | 163 | # make HOST_CC="gcc -m32" CROSS=powerpc-linux-gnu- |
167 | 164 | ||
168 | CCOPTIONS= $(CCDEBUG) $(CCOPT) $(CCWARN) $(XCFLAGS) $(CFLAGS) | 165 | ASOPTIONS= $(CCOPT) $(CCWARN) $(XCFLAGS) $(CFLAGS) |
166 | CCOPTIONS= $(CCDEBUG) $(ASOPTIONS) | ||
169 | LDOPTIONS= $(CCDEBUG) $(LDFLAGS) | 167 | LDOPTIONS= $(CCDEBUG) $(LDFLAGS) |
170 | 168 | ||
171 | HOST_CC= $(CC) | 169 | HOST_CC= $(CC) |
@@ -204,6 +202,7 @@ TARGET_XLDFLAGS= | |||
204 | TARGET_XLIBS= -lm | 202 | TARGET_XLIBS= -lm |
205 | TARGET_TCFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) | 203 | TARGET_TCFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) |
206 | TARGET_ACFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) | 204 | TARGET_ACFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) |
205 | TARGET_ASFLAGS= $(ASOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) | ||
207 | TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_FLAGS) $(TARGET_LDFLAGS) | 206 | TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_FLAGS) $(TARGET_LDFLAGS) |
208 | TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_FLAGS) $(TARGET_SHLDFLAGS) | 207 | TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_FLAGS) $(TARGET_SHLDFLAGS) |
209 | TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS) | 208 | TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS) |
@@ -218,12 +217,12 @@ else | |||
218 | ifneq (,$(findstring LJ_TARGET_ARM ,$(TARGET_TESTARCH))) | 217 | ifneq (,$(findstring LJ_TARGET_ARM ,$(TARGET_TESTARCH))) |
219 | TARGET_LJARCH= arm | 218 | TARGET_LJARCH= arm |
220 | else | 219 | else |
220 | ifneq (,$(findstring LJ_TARGET_ARM64 ,$(TARGET_TESTARCH))) | ||
221 | TARGET_LJARCH= arm64 | ||
222 | else | ||
221 | ifneq (,$(findstring LJ_TARGET_PPC ,$(TARGET_TESTARCH))) | 223 | ifneq (,$(findstring LJ_TARGET_PPC ,$(TARGET_TESTARCH))) |
222 | TARGET_LJARCH= ppc | 224 | TARGET_LJARCH= ppc |
223 | else | 225 | else |
224 | ifneq (,$(findstring LJ_TARGET_PPCSPE ,$(TARGET_TESTARCH))) | ||
225 | TARGET_LJARCH= ppcspe | ||
226 | else | ||
227 | ifneq (,$(findstring LJ_TARGET_MIPS ,$(TARGET_TESTARCH))) | 226 | ifneq (,$(findstring LJ_TARGET_MIPS ,$(TARGET_TESTARCH))) |
228 | ifneq (,$(findstring MIPSEL ,$(TARGET_TESTARCH))) | 227 | ifneq (,$(findstring MIPSEL ,$(TARGET_TESTARCH))) |
229 | TARGET_ARCH= -D__MIPSEL__=1 | 228 | TARGET_ARCH= -D__MIPSEL__=1 |
@@ -242,6 +241,7 @@ ifneq (,$(findstring LJ_TARGET_PS3 1,$(TARGET_TESTARCH))) | |||
242 | TARGET_SYS= PS3 | 241 | TARGET_SYS= PS3 |
243 | TARGET_ARCH+= -D__CELLOS_LV2__ | 242 | TARGET_ARCH+= -D__CELLOS_LV2__ |
244 | TARGET_XCFLAGS+= -DLUAJIT_USE_SYSMALLOC | 243 | TARGET_XCFLAGS+= -DLUAJIT_USE_SYSMALLOC |
244 | TARGET_XLIBS+= -lpthread | ||
245 | endif | 245 | endif |
246 | ifneq (,$(findstring LJ_NO_UNWIND 1,$(TARGET_TESTARCH))) | 246 | ifneq (,$(findstring LJ_NO_UNWIND 1,$(TARGET_TESTARCH))) |
247 | TARGET_ARCH+= -DLUAJIT_NO_UNWIND | 247 | TARGET_ARCH+= -DLUAJIT_NO_UNWIND |
@@ -313,6 +313,9 @@ ifeq (iOS,$(TARGET_SYS)) | |||
313 | TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC | 313 | TARGET_XSHLDFLAGS= -dynamiclib -single_module -undefined dynamic_lookup -fPIC |
314 | TARGET_DYNXLDOPTS= | 314 | TARGET_DYNXLDOPTS= |
315 | TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER) | 315 | TARGET_XSHLDFLAGS+= -install_name $(TARGET_DYLIBPATH) -compatibility_version $(MAJVER).$(MINVER) -current_version $(MAJVER).$(MINVER).$(RELVER) |
316 | ifeq (arm64,$(TARGET_LJARCH)) | ||
317 | TARGET_XCFLAGS+= -fno-omit-frame-pointer | ||
318 | endif | ||
316 | else | 319 | else |
317 | ifneq (SunOS,$(TARGET_SYS)) | 320 | ifneq (SunOS,$(TARGET_SYS)) |
318 | ifneq (PS3,$(TARGET_SYS)) | 321 | ifneq (PS3,$(TARGET_SYS)) |
@@ -401,13 +404,10 @@ DASM_AFLAGS+= -D VER=$(subst LJ_ARCH_VERSION_,,$(filter LJ_ARCH_VERSION_%,$(subs | |||
401 | ifeq (Windows,$(TARGET_SYS)) | 404 | ifeq (Windows,$(TARGET_SYS)) |
402 | DASM_AFLAGS+= -D WIN | 405 | DASM_AFLAGS+= -D WIN |
403 | endif | 406 | endif |
404 | ifeq (x86,$(TARGET_LJARCH)) | ||
405 | ifneq (,$(findstring __SSE2__ 1,$(TARGET_TESTARCH))) | ||
406 | DASM_AFLAGS+= -D SSE | ||
407 | endif | ||
408 | else | ||
409 | ifeq (x64,$(TARGET_LJARCH)) | 407 | ifeq (x64,$(TARGET_LJARCH)) |
410 | DASM_ARCH= x86 | 408 | ifeq (,$(findstring LJ_FR2 1,$(TARGET_TESTARCH))) |
409 | DASM_ARCH= x86 | ||
410 | endif | ||
411 | else | 411 | else |
412 | ifeq (arm,$(TARGET_LJARCH)) | 412 | ifeq (arm,$(TARGET_LJARCH)) |
413 | ifeq (iOS,$(TARGET_SYS)) | 413 | ifeq (iOS,$(TARGET_SYS)) |
@@ -430,7 +430,6 @@ ifeq (ppc,$(TARGET_LJARCH)) | |||
430 | endif | 430 | endif |
431 | endif | 431 | endif |
432 | endif | 432 | endif |
433 | endif | ||
434 | 433 | ||
435 | DASM_FLAGS= $(DASM_XFLAGS) $(DASM_AFLAGS) | 434 | DASM_FLAGS= $(DASM_XFLAGS) $(DASM_AFLAGS) |
436 | DASM_DASC= vm_$(DASM_ARCH).dasc | 435 | DASM_DASC= vm_$(DASM_ARCH).dasc |
@@ -443,7 +442,7 @@ BUILDVM_X= $(BUILDVM_T) | |||
443 | HOST_O= $(MINILUA_O) $(BUILDVM_O) | 442 | HOST_O= $(MINILUA_O) $(BUILDVM_O) |
444 | HOST_T= $(MINILUA_T) $(BUILDVM_T) | 443 | HOST_T= $(MINILUA_T) $(BUILDVM_T) |
445 | 444 | ||
446 | LJVM_S= lj_vm.s | 445 | LJVM_S= lj_vm.S |
447 | LJVM_O= lj_vm.o | 446 | LJVM_O= lj_vm.o |
448 | LJVM_BOUT= $(LJVM_S) | 447 | LJVM_BOUT= $(LJVM_S) |
449 | LJVM_MODE= elfasm | 448 | LJVM_MODE= elfasm |
@@ -452,10 +451,11 @@ LJLIB_O= lib_base.o lib_math.o lib_bit.o lib_string.o lib_table.o \ | |||
452 | lib_io.o lib_os.o lib_package.o lib_debug.o lib_jit.o lib_ffi.o | 451 | lib_io.o lib_os.o lib_package.o lib_debug.o lib_jit.o lib_ffi.o |
453 | LJLIB_C= $(LJLIB_O:.o=.c) | 452 | LJLIB_C= $(LJLIB_O:.o=.c) |
454 | 453 | ||
455 | LJCORE_O= lj_gc.o lj_err.o lj_char.o lj_bc.o lj_obj.o \ | 454 | LJCORE_O= lj_gc.o lj_err.o lj_char.o lj_bc.o lj_obj.o lj_buf.o \ |
456 | lj_str.o lj_tab.o lj_func.o lj_udata.o lj_meta.o lj_debug.o \ | 455 | lj_str.o lj_tab.o lj_func.o lj_udata.o lj_meta.o lj_debug.o \ |
457 | lj_state.o lj_dispatch.o lj_vmevent.o lj_vmmath.o lj_strscan.o \ | 456 | lj_state.o lj_dispatch.o lj_vmevent.o lj_vmmath.o lj_strscan.o \ |
458 | lj_api.o lj_lex.o lj_parse.o lj_bcread.o lj_bcwrite.o lj_load.o \ | 457 | lj_strfmt.o lj_api.o lj_profile.o \ |
458 | lj_lex.o lj_parse.o lj_bcread.o lj_bcwrite.o lj_load.o \ | ||
459 | lj_ir.o lj_opt_mem.o lj_opt_fold.o lj_opt_narrow.o \ | 459 | lj_ir.o lj_opt_mem.o lj_opt_fold.o lj_opt_narrow.o \ |
460 | lj_opt_dce.o lj_opt_loop.o lj_opt_split.o lj_opt_sink.o \ | 460 | lj_opt_dce.o lj_opt_loop.o lj_opt_split.o lj_opt_sink.o \ |
461 | lj_mcode.o lj_snap.o lj_record.o lj_crecord.o lj_ffrecord.o \ | 461 | lj_mcode.o lj_snap.o lj_record.o lj_crecord.o lj_ffrecord.o \ |
@@ -575,6 +575,10 @@ amalg: | |||
575 | clean: | 575 | clean: |
576 | $(HOST_RM) $(ALL_RM) | 576 | $(HOST_RM) $(ALL_RM) |
577 | 577 | ||
578 | libbc: | ||
579 | ./$(LUAJIT_T) host/genlibbc.lua -o host/buildvm_libbc.h $(LJLIB_C) | ||
580 | $(MAKE) all | ||
581 | |||
578 | depend: | 582 | depend: |
579 | @for file in $(ALL_HDRGEN); do \ | 583 | @for file in $(ALL_HDRGEN); do \ |
580 | test -f $$file || touch $$file; \ | 584 | test -f $$file || touch $$file; \ |
@@ -589,7 +593,7 @@ depend: | |||
589 | test -s $$file || $(HOST_RM) $$file; \ | 593 | test -s $$file || $(HOST_RM) $$file; \ |
590 | done | 594 | done |
591 | 595 | ||
592 | .PHONY: default all amalg clean depend | 596 | .PHONY: default all amalg clean libbc depend |
593 | 597 | ||
594 | ############################################################################## | 598 | ############################################################################## |
595 | # Rules for generated files. | 599 | # Rules for generated files. |
@@ -646,10 +650,10 @@ lj_folddef.h: $(BUILDVM_T) lj_opt_fold.c | |||
646 | $(Q)$(TARGET_DYNCC) $(TARGET_ACFLAGS) -c -o $(@:.o=_dyn.o) $< | 650 | $(Q)$(TARGET_DYNCC) $(TARGET_ACFLAGS) -c -o $(@:.o=_dyn.o) $< |
647 | $(Q)$(TARGET_CC) $(TARGET_ACFLAGS) -c -o $@ $< | 651 | $(Q)$(TARGET_CC) $(TARGET_ACFLAGS) -c -o $@ $< |
648 | 652 | ||
649 | %.o: %.s | 653 | %.o: %.S |
650 | $(E) "ASM $@" | 654 | $(E) "ASM $@" |
651 | $(Q)$(TARGET_DYNCC) $(TARGET_ACFLAGS) -c -o $(@:.o=_dyn.o) $< | 655 | $(Q)$(TARGET_DYNCC) $(TARGET_ASFLAGS) -c -o $(@:.o=_dyn.o) $< |
652 | $(Q)$(TARGET_CC) $(TARGET_ACFLAGS) -c -o $@ $< | 656 | $(Q)$(TARGET_CC) $(TARGET_ASFLAGS) -c -o $@ $< |
653 | 657 | ||
654 | $(LUAJIT_O): | 658 | $(LUAJIT_O): |
655 | $(E) "CC $@" | 659 | $(E) "CC $@" |