aboutsummaryrefslogtreecommitdiff
path: root/src/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile54
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
13MAJVER= 2 13MAJVER= 2
14MINVER= 0 14MINVER= 1
15RELVER= 3 15RELVER= 0
16ABIVER= 5.1 16ABIVER= 5.1
17NODOTABIVER= 51 17NODOTABIVER= 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#
51CCOPT_x86= -march=i686 48CCOPT_x86= -march=i686 -msse -msse2 -mfpmath=sse
52CCOPT_x64= 49CCOPT_x64=
53CCOPT_arm= 50CCOPT_arm=
51CCOPT_arm64=
54CCOPT_ppc= 52CCOPT_ppc=
55CCOPT_ppcspe=
56CCOPT_mips= 53CCOPT_mips=
57# 54#
58CCDEBUG= 55CCDEBUG=
@@ -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
168CCOPTIONS= $(CCDEBUG) $(CCOPT) $(CCWARN) $(XCFLAGS) $(CFLAGS) 165ASOPTIONS= $(CCOPT) $(CCWARN) $(XCFLAGS) $(CFLAGS)
166CCOPTIONS= $(CCDEBUG) $(ASOPTIONS)
169LDOPTIONS= $(CCDEBUG) $(LDFLAGS) 167LDOPTIONS= $(CCDEBUG) $(LDFLAGS)
170 168
171HOST_CC= $(CC) 169HOST_CC= $(CC)
@@ -204,6 +202,7 @@ TARGET_XLDFLAGS=
204TARGET_XLIBS= -lm 202TARGET_XLIBS= -lm
205TARGET_TCFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) 203TARGET_TCFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS)
206TARGET_ACFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS) 204TARGET_ACFLAGS= $(CCOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS)
205TARGET_ASFLAGS= $(ASOPTIONS) $(TARGET_XCFLAGS) $(TARGET_FLAGS) $(TARGET_CFLAGS)
207TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_FLAGS) $(TARGET_LDFLAGS) 206TARGET_ALDFLAGS= $(LDOPTIONS) $(TARGET_XLDFLAGS) $(TARGET_FLAGS) $(TARGET_LDFLAGS)
208TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_FLAGS) $(TARGET_SHLDFLAGS) 207TARGET_ASHLDFLAGS= $(LDOPTIONS) $(TARGET_XSHLDFLAGS) $(TARGET_FLAGS) $(TARGET_SHLDFLAGS)
209TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS) 208TARGET_ALIBS= $(TARGET_XLIBS) $(LIBS) $(TARGET_LIBS)
@@ -218,12 +217,12 @@ else
218ifneq (,$(findstring LJ_TARGET_ARM ,$(TARGET_TESTARCH))) 217ifneq (,$(findstring LJ_TARGET_ARM ,$(TARGET_TESTARCH)))
219 TARGET_LJARCH= arm 218 TARGET_LJARCH= arm
220else 219else
220ifneq (,$(findstring LJ_TARGET_ARM64 ,$(TARGET_TESTARCH)))
221 TARGET_LJARCH= arm64
222else
221ifneq (,$(findstring LJ_TARGET_PPC ,$(TARGET_TESTARCH))) 223ifneq (,$(findstring LJ_TARGET_PPC ,$(TARGET_TESTARCH)))
222 TARGET_LJARCH= ppc 224 TARGET_LJARCH= ppc
223else 225else
224ifneq (,$(findstring LJ_TARGET_PPCSPE ,$(TARGET_TESTARCH)))
225 TARGET_LJARCH= ppcspe
226else
227ifneq (,$(findstring LJ_TARGET_MIPS ,$(TARGET_TESTARCH))) 226ifneq (,$(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
245endif 245endif
246ifneq (,$(findstring LJ_NO_UNWIND 1,$(TARGET_TESTARCH))) 246ifneq (,$(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
316else 319else
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
401ifeq (Windows,$(TARGET_SYS)) 404ifeq (Windows,$(TARGET_SYS))
402 DASM_AFLAGS+= -D WIN 405 DASM_AFLAGS+= -D WIN
403endif 406endif
404ifeq (x86,$(TARGET_LJARCH))
405 ifneq (,$(findstring __SSE2__ 1,$(TARGET_TESTARCH)))
406 DASM_AFLAGS+= -D SSE
407 endif
408else
409ifeq (x64,$(TARGET_LJARCH)) 407ifeq (x64,$(TARGET_LJARCH))
410 DASM_ARCH= x86 408 ifeq (,$(findstring LJ_FR2 1,$(TARGET_TESTARCH)))
409 DASM_ARCH= x86
410 endif
411else 411else
412ifeq (arm,$(TARGET_LJARCH)) 412ifeq (arm,$(TARGET_LJARCH))
413 ifeq (iOS,$(TARGET_SYS)) 413 ifeq (iOS,$(TARGET_SYS))
@@ -430,7 +430,6 @@ ifeq (ppc,$(TARGET_LJARCH))
430endif 430endif
431endif 431endif
432endif 432endif
433endif
434 433
435DASM_FLAGS= $(DASM_XFLAGS) $(DASM_AFLAGS) 434DASM_FLAGS= $(DASM_XFLAGS) $(DASM_AFLAGS)
436DASM_DASC= vm_$(DASM_ARCH).dasc 435DASM_DASC= vm_$(DASM_ARCH).dasc
@@ -443,7 +442,7 @@ BUILDVM_X= $(BUILDVM_T)
443HOST_O= $(MINILUA_O) $(BUILDVM_O) 442HOST_O= $(MINILUA_O) $(BUILDVM_O)
444HOST_T= $(MINILUA_T) $(BUILDVM_T) 443HOST_T= $(MINILUA_T) $(BUILDVM_T)
445 444
446LJVM_S= lj_vm.s 445LJVM_S= lj_vm.S
447LJVM_O= lj_vm.o 446LJVM_O= lj_vm.o
448LJVM_BOUT= $(LJVM_S) 447LJVM_BOUT= $(LJVM_S)
449LJVM_MODE= elfasm 448LJVM_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
453LJLIB_C= $(LJLIB_O:.o=.c) 452LJLIB_C= $(LJLIB_O:.o=.c)
454 453
455LJCORE_O= lj_gc.o lj_err.o lj_char.o lj_bc.o lj_obj.o \ 454LJCORE_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:
575clean: 575clean:
576 $(HOST_RM) $(ALL_RM) 576 $(HOST_RM) $(ALL_RM)
577 577
578libbc:
579 ./$(LUAJIT_T) host/genlibbc.lua -o host/buildvm_libbc.h $(LJLIB_C)
580 $(MAKE) all
581
578depend: 582depend:
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 $@"