|
| 1 | +#!/bin/sh |
| 2 | + |
| 3 | +set -e |
| 4 | + |
| 5 | +LJARCH= |
| 6 | +LUAJIT_BUILDMODE= |
| 7 | +LUAJIT_BUILDVM_X= |
| 8 | +LUAJIT_DASM_ARCHS= |
| 9 | +LUAJIT_PREFIX= |
| 10 | +for OPTION; do |
| 11 | + case "${OPTION}" in |
| 12 | + --prefix=*) |
| 13 | + LUAJIT_PREFIX="${OPTION#--prefix=}" |
| 14 | + ;; |
| 15 | + BUILDMODE=*) |
| 16 | + LUAJIT_BUILDMODE="${OPTION#BUILDMODE=}" |
| 17 | + ;; |
| 18 | + BUILDVM_X=*) |
| 19 | + LUAJIT_BUILDVM_X="${OPTION#BUILDVM_X=}" |
| 20 | + ;; |
| 21 | + DASM_ARCHS=*) |
| 22 | + LUAJIT_DASM_ARCHS="${OPTION#DASM_ARCHS=}" |
| 23 | + ;; |
| 24 | + LJARCH=*) |
| 25 | + LJARCH="${OPTION#LJARCH=}" |
| 26 | + ;; |
| 27 | + esac |
| 28 | +done |
| 29 | + |
| 30 | +cat > Makefile.vcpkg <<END_MAKEFILE ; |
| 31 | +
|
| 32 | +COMMON_OPTIONS += 'E=@:' 'Q=' |
| 33 | +COMMON_OPTIONS += 'BUILDMODE=${LUAJIT_BUILDMODE}' |
| 34 | +COMMON_OPTIONS += 'PREFIX=${LUAJIT_PREFIX}' |
| 35 | +COMMON_OPTIONS += 'INSTALL_TNAME=luajit' |
| 36 | +
|
| 37 | +BUILD_OPTIONS += 'CC=${CC}' |
| 38 | +BUILD_OPTIONS += 'CCDEBUG=' |
| 39 | +BUILD_OPTIONS += 'CFLAGS=${CPPFLAGS} ${CFLAGS}' |
| 40 | +BUILD_OPTIONS += 'LDFLAGS=${LDFLAGS}' |
| 41 | +BUILD_OPTIONS += 'LIBS=${LIBS}' |
| 42 | +
|
| 43 | +ifeq (${LJARCH},) |
| 44 | +# native |
| 45 | +BUILDVM_PREFIX = ${LUAJIT_PREFIX}/manual-tools/luajit |
| 46 | +DASM_ARCHS = ${LUAJIT_DASM_ARCHS} |
| 47 | +else |
| 48 | +# cross |
| 49 | +BUILD_OPTIONS += 'HOST_CC=:' |
| 50 | +BUILD_OPTIONS += 'BUILDVM_T=' |
| 51 | +BUILD_OPTIONS += 'BUILDVM_X=${LUAJIT_BUILDVM_X}' |
| 52 | +endif |
| 53 | +
|
| 54 | +# used by src/Makefile, best effort from manual '<CC> [-m32] -E src/lj_arch.h -dM' |
| 55 | +TARGET_TESTARCH_COMMON += 'LJ_LE 1' 'LJ_HASJIT 1' 'LJ_HASFFI 1' 'LJ_ARCH_HASFPU 1' 'LJ_ABI_SOFTFP 0' |
| 56 | +TARGET_TESTARCH_COMMON_32 += \$(TARGET_TESTARCH_COMMON) 'LJ_ARCH_BITS 32' |
| 57 | +TARGET_TESTARCH_COMMON_64 += \$(TARGET_TESTARCH_COMMON) 'LJ_ARCH_BITS 64' 'LJ_TARGET_GC64 1' |
| 58 | +TARGET_TESTARCH_arm = \$(TARGET_TESTARCH_COMMON_32) LJ_TARGET_ARM |
| 59 | +TARGET_TESTARCH_arm64 = \$(TARGET_TESTARCH_COMMON_64) LJ_TARGET_ARM64 'LJ_ARCH_VERSION 80' |
| 60 | +TARGET_TESTARCH_x86 = \$(TARGET_TESTARCH_COMMON_32) LJ_TARGET_X86 |
| 61 | +TARGET_TESTARCH_x64 = \$(TARGET_TESTARCH_COMMON_64) LJ_TARGET_X64 'LJ_FR2 1' |
| 62 | +
|
| 63 | +all: |
| 64 | + \$(MAKE) clean \$(COMMON_OPTIONS) \$(BUILD_OPTIONS) |
| 65 | + \$(MAKE) all \$(COMMON_OPTIONS) \$(BUILD_OPTIONS) |
| 66 | + for DA in \$(DASM_ARCHS); do \\ |
| 67 | + rm -f src/host/buildvm_arch.h src/host/*.o; \\ |
| 68 | + case "\$\$DA" in \\ |
| 69 | + arm) TARGET_TESTARCH="\$(TARGET_TESTARCH_arm)" ;; \\ |
| 70 | + arm64) TARGET_TESTARCH="\$(TARGET_TESTARCH_arm64)" ;; \\ |
| 71 | + x86) TARGET_TESTARCH="\$(TARGET_TESTARCH_x86)" ;; \\ |
| 72 | + x64) TARGET_TESTARCH="\$(TARGET_TESTARCH_x64)" ;; \\ |
| 73 | + esac ; \\ |
| 74 | + \$(MAKE) -C src host/buildvm-\$\$DA\$(EXECUTABLE_SUFFIX) \$(COMMON_OPTIONS) \$(BUILD_OPTIONS) \\ |
| 75 | + BUILDVM_T=host/buildvm-\$\$DA\$(EXECUTABLE_SUFFIX) "TARGET_TESTARCH=\$\${TARGET_TESTARCH}" \\ |
| 76 | + || exit 1; \\ |
| 77 | + done |
| 78 | +
|
| 79 | +install: |
| 80 | + \$(MAKE) install \$(COMMON_OPTIONS) |
| 81 | + for DA in \$(DASM_ARCHS); do \\ |
| 82 | + mkdir -p "\$\${DESTDIR}\$(BUILDVM_PREFIX)"; \\ |
| 83 | + install -m 0755 "src/host/buildvm-\$\$DA\$(EXECUTABLE_SUFFIX)" "\$\${DESTDIR}\$(BUILDVM_PREFIX)/buildvm-\$\$DA\$(EXECUTABLE_SUFFIX)" || exit 1 ; \\ |
| 84 | + done |
| 85 | +
|
| 86 | +END_MAKEFILE |
0 commit comments