diff options
| author | Hisham Muhammad <hisham@gobolinux.org> | 2020-01-06 17:47:37 -0300 |
|---|---|---|
| committer | Hisham Muhammad <hisham@gobolinux.org> | 2020-01-14 21:56:55 -0300 |
| commit | 613b66c271e8b6d4c060668bfe3ca055fc35b166 (patch) | |
| tree | 525fc6e8df94704671262a3a205c83e3b0de87c0 | |
| parent | 525c41f2024422808a72ca832f41ab1c6e32b6b3 (diff) | |
| download | luarocks-613b66c271e8b6d4c060668bfe3ca055fc35b166.tar.gz luarocks-613b66c271e8b6d4c060668bfe3ca055fc35b166.tar.bz2 luarocks-613b66c271e8b6d4c060668bfe3ca055fc35b166.zip | |
support for building 64-bit Windows all-in-one binary
| -rw-r--r-- | GNUmakefile | 22 | ||||
| -rw-r--r-- | binary/Makefile.windows | 94 | ||||
| -rwxr-xr-x | binary/all_in_one | 19 | ||||
| -rwxr-xr-x | makedist | 14 |
4 files changed, 89 insertions, 60 deletions
diff --git a/GNUmakefile b/GNUmakefile index 04d1cca0..f4a6015f 100644 --- a/GNUmakefile +++ b/GNUmakefile | |||
| @@ -93,11 +93,11 @@ binary: luarocks $(buildbinarydir)/luarocks.exe $(buildbinarydir)/luarocks-admin | |||
| 93 | 93 | ||
| 94 | $(buildbinarydir)/luarocks.exe: src/bin/luarocks $(LUAROCKS_FILES) | 94 | $(buildbinarydir)/luarocks.exe: src/bin/luarocks $(LUAROCKS_FILES) |
| 95 | (unset $(LUA_ENV_VARS); \ | 95 | (unset $(LUA_ENV_VARS); \ |
| 96 | "$(LUA)" binary/all_in_one "$<" "$(LUA_DIR)" "^src/luarocks/admin/" "$(luarocksconfdir)" "$(@D)" "$(FORCE_CONFIG)" $(BINARY_PLATFORM) $(CC) $(NM) $(SYSROOT)) | 96 | "$(LUA)" binary/all_in_one "$<" "$(LUA_DIR)" "^src/luarocks/admin/" "$(luarocksconfdir)" "$(@D)" "$(FORCE_CONFIG)" $(BINARY_PLATFORM) $(CC) $(NM) $(BINARY_SYSROOT)) |
| 97 | 97 | ||
| 98 | $(buildbinarydir)/luarocks-admin.exe: src/bin/luarocks-admin $(LUAROCKS_FILES) | 98 | $(buildbinarydir)/luarocks-admin.exe: src/bin/luarocks-admin $(LUAROCKS_FILES) |
| 99 | (unset $(LUA_ENV_VARS); \ | 99 | (unset $(LUA_ENV_VARS); \ |
| 100 | "$(LUA)" binary/all_in_one "$<" "$(LUA_DIR)" "^src/luarocks/cmd/" "$(luarocksconfdir)" "$(@D)" "$(FORCE_CONFIG)" $(BINARY_PLATFORM) $(CC) $(NM) $(SYSROOT)) | 100 | "$(LUA)" binary/all_in_one "$<" "$(LUA_DIR)" "^src/luarocks/cmd/" "$(luarocksconfdir)" "$(@D)" "$(FORCE_CONFIG)" $(BINARY_PLATFORM) $(CC) $(NM) $(BINARY_SYSROOT)) |
| 101 | 101 | ||
| 102 | # ---------------------------------------- | 102 | # ---------------------------------------- |
| 103 | # Regular install | 103 | # Regular install |
| @@ -155,11 +155,21 @@ bootstrap: luarocks $(DESTDIR)$(luarocksconfdir)/config-$(LUA_VERSION).lua | |||
| 155 | # Windows binary build | 155 | # Windows binary build |
| 156 | # ---------------------------------------- | 156 | # ---------------------------------------- |
| 157 | 157 | ||
| 158 | windows-binary: luarocks | 158 | windows-binary: windows-binary-32 windows-binary-64 |
| 159 | $(MAKE) -f binary/Makefile.windows windows-binary | ||
| 160 | 159 | ||
| 161 | windows-clean: | 160 | windows-clean: windows-clean-32 windows-clean-64 |
| 162 | $(MAKE) -f binary/Makefile.windows windows-clean | 161 | |
| 162 | windows-binary-32: luarocks | ||
| 163 | $(MAKE) -f binary/Makefile.windows windows-binary MINGW_PREFIX=i686-w64-mingw32 OPENSSL_PLATFORM=mingw | ||
| 164 | |||
| 165 | windows-clean-32: | ||
| 166 | $(MAKE) -f binary/Makefile.windows windows-clean MINGW_PREFIX=i686-w64-mingw32 OPENSSL_PLATFORM=mingw | ||
| 167 | |||
| 168 | windows-binary-64: luarocks | ||
| 169 | $(MAKE) -f binary/Makefile.windows windows-binary MINGW_PREFIX=x86_64-w64-mingw32 OPENSSL_PLATFORM=mingw64 | ||
| 170 | |||
| 171 | windows-clean-64: | ||
| 172 | $(MAKE) -f binary/Makefile.windows windows-clean MINGW_PREFIX=x86_64-w64-mingw32 OPENSSL_PLATFORM=mingw64 | ||
| 163 | 173 | ||
| 164 | # ---------------------------------------- | 174 | # ---------------------------------------- |
| 165 | # Clean | 175 | # Clean |
diff --git a/binary/Makefile.windows b/binary/Makefile.windows index e7bcca27..e6ec26bf 100644 --- a/binary/Makefile.windows +++ b/binary/Makefile.windows | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | 1 | ||
| 2 | # "i686-w64-mingw32" or "x86_64-w64-mingw32" | 2 | # "i686-w64-mingw32" or "x86_64-w64-mingw32" |
| 3 | MINGW_PREFIX=i686-w64-mingw32 | 3 | MINGW_PREFIX?=i686-w64-mingw32 |
| 4 | # sysroot of your mingw-w64 installation | 4 | # sysroot of your mingw-w64 installation |
| 5 | MINGW_SYSROOT=/usr/lib/mingw-w64-sysroot/$(MINGW_PREFIX) | 5 | MINGW_SYSROOT=/usr/lib/mingw-w64-sysroot/$(MINGW_PREFIX) |
| 6 | # "mingw" or "mingw64" | 6 | # "mingw" or "mingw64" |
| @@ -11,62 +11,66 @@ OPENSSL_VERSION=1.0.2o | |||
| 11 | ZLIB_VERSION=1.2.11 | 11 | ZLIB_VERSION=1.2.11 |
| 12 | BZIP2_VERSION=1.0.6 | 12 | BZIP2_VERSION=1.0.6 |
| 13 | 13 | ||
| 14 | windows-binary: windows-deps/lib/liblua.a windows-deps/lib/libssl.a windows-deps/lib/libz.a windows-deps/lib/libbz2.a | 14 | WINDOWS_DEPS_DIR=windows-deps-$(MINGW_PREFIX) |
| 15 | BUILD_WINDOWS_DEPS_DIR=build-windows-deps-$(MINGW_PREFIX) | ||
| 16 | BUILD_WINDOWS_BINARY_DIR=build-windows-binary-$(MINGW_PREFIX) | ||
| 17 | |||
| 18 | windows-binary: $(WINDOWS_DEPS_DIR)/lib/liblua.a $(WINDOWS_DEPS_DIR)/lib/libssl.a $(WINDOWS_DEPS_DIR)/lib/libz.a $(WINDOWS_DEPS_DIR)/lib/libbz2.a | ||
| 15 | STATIC_GCC_AR=$(MINGW_PREFIX)-ar \ | 19 | STATIC_GCC_AR=$(MINGW_PREFIX)-ar \ |
| 16 | STATIC_GCC_RANLIB=$(MINGW_PREFIX)-ranlib \ | 20 | STATIC_GCC_RANLIB=$(MINGW_PREFIX)-ranlib \ |
| 17 | STATIC_GCC_CC=$(MINGW_PREFIX)-gcc \ | 21 | STATIC_GCC_CC=$(MINGW_PREFIX)-gcc \ |
| 18 | LUAROCKS_CROSS_COMPILING=1 \ | 22 | LUAROCKS_CROSS_COMPILING=1 \ |
| 19 | $(MAKE) binary LUA_DIR=$(CURDIR)/windows-deps CC=$(MINGW_PREFIX)-gcc NM=$(MINGW_PREFIX)-nm BINARY_PLATFORM=windows buildbinarydir=build-windows-binary BINARY_SYSROOT=$(MINGW_SYSROOT) | 23 | $(MAKE) binary LUA_DIR=$(CURDIR)/$(WINDOWS_DEPS_DIR) CC=$(MINGW_PREFIX)-gcc NM=$(MINGW_PREFIX)-nm BINARY_PLATFORM=windows buildbinarydir=$(BUILD_WINDOWS_BINARY_DIR) BINARY_SYSROOT=$(MINGW_SYSROOT) |
| 20 | 24 | ||
| 21 | build-windows-deps/lua-$(LIBLUA_VERSION).tar.gz: | 25 | $(BUILD_WINDOWS_DEPS_DIR)/lua-$(LIBLUA_VERSION).tar.gz: |
| 22 | mkdir -p $(@D) | 26 | mkdir -p $(@D) |
| 23 | cd build-windows-deps && curl -OL https://www.lua.org/ftp/lua-$(LIBLUA_VERSION).tar.gz | 27 | cd $(BUILD_WINDOWS_DEPS_DIR) && curl -OL https://www.lua.org/ftp/lua-$(LIBLUA_VERSION).tar.gz |
| 24 | build-windows-deps/lua-$(LIBLUA_VERSION): build-windows-deps/lua-$(LIBLUA_VERSION).tar.gz | 28 | $(BUILD_WINDOWS_DEPS_DIR)/lua-$(LIBLUA_VERSION): $(BUILD_WINDOWS_DEPS_DIR)/lua-$(LIBLUA_VERSION).tar.gz |
| 25 | cd build-windows-deps && tar zxvpf lua-$(LIBLUA_VERSION).tar.gz | 29 | cd $(BUILD_WINDOWS_DEPS_DIR) && tar zxvpf lua-$(LIBLUA_VERSION).tar.gz |
| 26 | windows-deps/lib/liblua.a: build-windows-deps/lua-$(LIBLUA_VERSION) | 30 | $(WINDOWS_DEPS_DIR)/lib/liblua.a: $(BUILD_WINDOWS_DEPS_DIR)/lua-$(LIBLUA_VERSION) |
| 27 | $(MAKE) -C "build-windows-deps/lua-$(LIBLUA_VERSION)/src" LUA_A=liblua.a CC=$(MINGW_PREFIX)-gcc AR="$(MINGW_PREFIX)-ar rcu" RANLIB=$(MINGW_PREFIX)-ranlib SYSCFLAGS= SYSLIBS= SYSLDFLAGS= liblua.a | 31 | $(MAKE) -C "$(BUILD_WINDOWS_DEPS_DIR)/lua-$(LIBLUA_VERSION)/src" LUA_A=liblua.a CC=$(MINGW_PREFIX)-gcc AR="$(MINGW_PREFIX)-ar rcu" RANLIB=$(MINGW_PREFIX)-ranlib SYSCFLAGS= SYSLIBS= SYSLDFLAGS= liblua.a |
| 28 | mkdir -p windows-deps/include | 32 | mkdir -p $(WINDOWS_DEPS_DIR)/include |
| 29 | cd build-windows-deps/lua-$(LIBLUA_VERSION)/src && cp lauxlib.h lua.h lua.hpp luaconf.h lualib.h ../../../windows-deps/include | 33 | cd $(BUILD_WINDOWS_DEPS_DIR)/lua-$(LIBLUA_VERSION)/src && cp lauxlib.h lua.h lua.hpp luaconf.h lualib.h ../../../$(WINDOWS_DEPS_DIR)/include |
| 30 | mkdir -p windows-deps/lib | 34 | mkdir -p $(WINDOWS_DEPS_DIR)/lib |
| 31 | cd build-windows-deps/lua-$(LIBLUA_VERSION)/src && cp liblua.a ../../../windows-deps/lib | 35 | cd $(BUILD_WINDOWS_DEPS_DIR)/lua-$(LIBLUA_VERSION)/src && cp liblua.a ../../../$(WINDOWS_DEPS_DIR)/lib |
| 32 | 36 | ||
| 33 | build-windows-deps/openssl-$(OPENSSL_VERSION).tar.gz: | 37 | $(BUILD_WINDOWS_DEPS_DIR)/openssl-$(OPENSSL_VERSION).tar.gz: |
| 34 | mkdir -p $(@D) | 38 | mkdir -p $(@D) |
| 35 | cd build-windows-deps && curl -OL https://www.openssl.org/source/openssl-$(OPENSSL_VERSION).tar.gz | 39 | cd $(BUILD_WINDOWS_DEPS_DIR) && curl -OL https://www.openssl.org/source/openssl-$(OPENSSL_VERSION).tar.gz |
| 36 | build-windows-deps/openssl-$(OPENSSL_VERSION): build-windows-deps/openssl-$(OPENSSL_VERSION).tar.gz | 40 | $(BUILD_WINDOWS_DEPS_DIR)/openssl-$(OPENSSL_VERSION): $(BUILD_WINDOWS_DEPS_DIR)/openssl-$(OPENSSL_VERSION).tar.gz |
| 37 | cd build-windows-deps && tar zxvpf openssl-$(OPENSSL_VERSION).tar.gz | 41 | cd $(BUILD_WINDOWS_DEPS_DIR) && tar zxvpf openssl-$(OPENSSL_VERSION).tar.gz |
| 38 | windows-deps/lib/libssl.a: build-windows-deps/openssl-$(OPENSSL_VERSION) | 42 | $(WINDOWS_DEPS_DIR)/lib/libssl.a: $(BUILD_WINDOWS_DEPS_DIR)/openssl-$(OPENSSL_VERSION) |
| 39 | cd build-windows-deps/openssl-$(OPENSSL_VERSION) && ./Configure --prefix=$(CURDIR)/windows-deps --cross-compile-prefix=$(MINGW_PREFIX)- $(OPENSSL_PLATFORM) | 43 | cd $(BUILD_WINDOWS_DEPS_DIR)/openssl-$(OPENSSL_VERSION) && ./Configure --prefix=$(CURDIR)/$(WINDOWS_DEPS_DIR) --cross-compile-prefix=$(MINGW_PREFIX)- $(OPENSSL_PLATFORM) |
| 40 | $(MAKE) -C "build-windows-deps/openssl-$(OPENSSL_VERSION)" | 44 | $(MAKE) -C "$(BUILD_WINDOWS_DEPS_DIR)/openssl-$(OPENSSL_VERSION)" |
| 41 | $(MAKE) -C "build-windows-deps/openssl-$(OPENSSL_VERSION)" install_sw | 45 | $(MAKE) -C "$(BUILD_WINDOWS_DEPS_DIR)/openssl-$(OPENSSL_VERSION)" install_sw |
| 42 | 46 | ||
| 43 | build-windows-deps/zlib-$(ZLIB_VERSION).tar.gz: | 47 | $(BUILD_WINDOWS_DEPS_DIR)/zlib-$(ZLIB_VERSION).tar.gz: |
| 44 | mkdir -p $(@D) | 48 | mkdir -p $(@D) |
| 45 | cd build-windows-deps && curl -OL https://www.zlib.net/zlib-$(ZLIB_VERSION).tar.gz | 49 | cd $(BUILD_WINDOWS_DEPS_DIR) && curl -OL https://www.zlib.net/zlib-$(ZLIB_VERSION).tar.gz |
| 46 | build-windows-deps/zlib-$(ZLIB_VERSION): build-windows-deps/zlib-$(ZLIB_VERSION).tar.gz | 50 | $(BUILD_WINDOWS_DEPS_DIR)/zlib-$(ZLIB_VERSION): $(BUILD_WINDOWS_DEPS_DIR)/zlib-$(ZLIB_VERSION).tar.gz |
| 47 | cd build-windows-deps && tar zxvpf zlib-$(ZLIB_VERSION).tar.gz | 51 | cd $(BUILD_WINDOWS_DEPS_DIR) && tar zxvpf zlib-$(ZLIB_VERSION).tar.gz |
| 48 | windows-deps/lib/libz.a: build-windows-deps/zlib-$(ZLIB_VERSION) | 52 | $(WINDOWS_DEPS_DIR)/lib/libz.a: $(BUILD_WINDOWS_DEPS_DIR)/zlib-$(ZLIB_VERSION) |
| 49 | cd build-windows-deps/zlib-$(ZLIB_VERSION) && sed -ie "s,dllwrap,$(MINGW_PREFIX)-dllwrap," win32/Makefile.gcc | 53 | cd $(BUILD_WINDOWS_DEPS_DIR)/zlib-$(ZLIB_VERSION) && sed -ie "s,dllwrap,$(MINGW_PREFIX)-dllwrap," win32/Makefile.gcc |
| 50 | cd build-windows-deps/zlib-$(ZLIB_VERSION) && ./configure --prefix=$(CURDIR)/windows-deps --static | 54 | cd $(BUILD_WINDOWS_DEPS_DIR)/zlib-$(ZLIB_VERSION) && ./configure --prefix=$(CURDIR)/$(WINDOWS_DEPS_DIR) --static |
| 51 | cd build-windows-deps/zlib-$(ZLIB_VERSION) && $(MAKE) -f win32/Makefile.gcc CC=$(MINGW_PREFIX)-gcc AR=$(MINGW_PREFIX)-ar RC=$(MINGW_PREFIX)-windres STRIP=$(MINGW_PREFIX)-strip IMPLIB=libz.dll.a | 55 | cd $(BUILD_WINDOWS_DEPS_DIR)/zlib-$(ZLIB_VERSION) && $(MAKE) -f win32/Makefile.gcc CC=$(MINGW_PREFIX)-gcc AR=$(MINGW_PREFIX)-ar RC=$(MINGW_PREFIX)-windres STRIP=$(MINGW_PREFIX)-strip IMPLIB=libz.dll.a |
| 52 | mkdir -p windows-deps/include | 56 | mkdir -p $(WINDOWS_DEPS_DIR)/include |
| 53 | cd build-windows-deps/zlib-$(ZLIB_VERSION) && cp zlib.h zconf.h ../../windows-deps/include | 57 | cd $(BUILD_WINDOWS_DEPS_DIR)/zlib-$(ZLIB_VERSION) && cp zlib.h zconf.h ../../$(WINDOWS_DEPS_DIR)/include |
| 54 | cd build-windows-deps/zlib-$(ZLIB_VERSION) && $(MINGW_PREFIX)-strip -g libz.a | 58 | cd $(BUILD_WINDOWS_DEPS_DIR)/zlib-$(ZLIB_VERSION) && $(MINGW_PREFIX)-strip -g libz.a |
| 55 | mkdir -p $(@D) | 59 | mkdir -p $(@D) |
| 56 | cd build-windows-deps/zlib-$(ZLIB_VERSION) && cp libz.a ../../windows-deps/lib | 60 | cd $(BUILD_WINDOWS_DEPS_DIR)/zlib-$(ZLIB_VERSION) && cp libz.a ../../$(WINDOWS_DEPS_DIR)/lib |
| 57 | 61 | ||
| 58 | build-windows-deps/bzip2-$(BZIP2_VERSION).tar.gz: | 62 | $(BUILD_WINDOWS_DEPS_DIR)/bzip2-$(BZIP2_VERSION).tar.gz: |
| 59 | mkdir -p $(@D) | 63 | mkdir -p $(@D) |
| 60 | cd build-windows-deps && curl -OL http://www.bzip.org/$(BZIP2_VERSION)/bzip2-$(BZIP2_VERSION).tar.gz | 64 | cd $(BUILD_WINDOWS_DEPS_DIR) && curl -OL http://downloads.sourceforge.net/project/bzip2/bzip2-$(BZIP2_VERSION).tar.gz |
| 61 | build-windows-deps/bzip2-$(BZIP2_VERSION): build-windows-deps/bzip2-$(BZIP2_VERSION).tar.gz | 65 | $(BUILD_WINDOWS_DEPS_DIR)/bzip2-$(BZIP2_VERSION): $(BUILD_WINDOWS_DEPS_DIR)/bzip2-$(BZIP2_VERSION).tar.gz |
| 62 | cd build-windows-deps && tar zxvpf bzip2-$(BZIP2_VERSION).tar.gz | 66 | cd $(BUILD_WINDOWS_DEPS_DIR) && tar zxvpf bzip2-$(BZIP2_VERSION).tar.gz |
| 63 | windows-deps/lib/libbz2.a: build-windows-deps/bzip2-$(BZIP2_VERSION) | 67 | $(WINDOWS_DEPS_DIR)/lib/libbz2.a: $(BUILD_WINDOWS_DEPS_DIR)/bzip2-$(BZIP2_VERSION) |
| 64 | $(MAKE) -C "build-windows-deps/bzip2-$(BZIP2_VERSION)" libbz2.a CC=$(MINGW_PREFIX)-gcc AR=$(MINGW_PREFIX)-ar RANLIB=$(MINGW_PREFIX)-ranlib | 68 | $(MAKE) -C "$(BUILD_WINDOWS_DEPS_DIR)/bzip2-$(BZIP2_VERSION)" libbz2.a CC=$(MINGW_PREFIX)-gcc AR=$(MINGW_PREFIX)-ar RANLIB=$(MINGW_PREFIX)-ranlib |
| 65 | mkdir -p windows-deps/include | 69 | mkdir -p $(WINDOWS_DEPS_DIR)/include |
| 66 | cd build-windows-deps/bzip2-$(BZIP2_VERSION) && cp bzlib.h ../../windows-deps/include | 70 | cd $(BUILD_WINDOWS_DEPS_DIR)/bzip2-$(BZIP2_VERSION) && cp bzlib.h ../../$(WINDOWS_DEPS_DIR)/include |
| 67 | cd build-windows-deps/bzip2-$(BZIP2_VERSION) && $(MINGW_PREFIX)-strip -g libbz2.a | 71 | cd $(BUILD_WINDOWS_DEPS_DIR)/bzip2-$(BZIP2_VERSION) && $(MINGW_PREFIX)-strip -g libbz2.a |
| 68 | mkdir -p windows-deps/lib | 72 | mkdir -p $(WINDOWS_DEPS_DIR)/lib |
| 69 | cd build-windows-deps/bzip2-$(BZIP2_VERSION) && cp libbz2.a ../../windows-deps/lib | 73 | cd $(BUILD_WINDOWS_DEPS_DIR)/bzip2-$(BZIP2_VERSION) && cp libbz2.a ../../$(WINDOWS_DEPS_DIR)/lib |
| 70 | 74 | ||
| 71 | windows-clean: | 75 | windows-clean: |
| 72 | rm -rf windows-deps build-windows-binary | 76 | rm -rf $(WINDOWS_DEPS_DIR) $(BUILD_WINDOWS_BINARY_DIR) |
diff --git a/binary/all_in_one b/binary/all_in_one index 4fa0ba76..82ea578c 100755 --- a/binary/all_in_one +++ b/binary/all_in_one | |||
| @@ -29,15 +29,20 @@ local MAIN_PROGRAM = arg[1] or "src/bin/luarocks" | |||
| 29 | local LUA_DIR = arg[2] or "/usr" | 29 | local LUA_DIR = arg[2] or "/usr" |
| 30 | local EXCLUDE = arg[3] or "^src/luarocks/admin/" | 30 | local EXCLUDE = arg[3] or "^src/luarocks/admin/" |
| 31 | local SYSCONFDIR = arg[4] or "/etc/luarocks" | 31 | local SYSCONFDIR = arg[4] or "/etc/luarocks" |
| 32 | local TARGET = arg[5] or "build-binary" | 32 | local TARGET_DIR = arg[5] or "build-binary" |
| 33 | local FORCE_CONFIG = (arg[6] == "yes") | 33 | local FORCE_CONFIG = (arg[6] == "yes") |
| 34 | local MY_PLATFORM = arg[7] or "unix" | 34 | local MY_PLATFORM = arg[7] or "unix" |
| 35 | local CC = arg[8] or "gcc" | 35 | local CC = arg[8] or "gcc" |
| 36 | local NM = arg[9] or "nm" | 36 | local NM = arg[9] or "nm" |
| 37 | local CROSSCOMPILER_SYSROOT = arg[10] or "/usr/lib/mingw-w64-sysroot/i686-w64-mingw32" | 37 | local CROSSCOMPILER_SYSROOT = arg[10] or "/usr/lib/mingw-w64-sysroot/i686-w64-mingw32" |
| 38 | local TRIPLET = arg[11] or CROSSCOMPILER_SYSROOT:gsub(".*/", "") | ||
| 39 | local PROCESSOR = arg[12] or TRIPLET:gsub("%-.*", "") | ||
| 40 | if PROCESSOR == "i686" then | ||
| 41 | PROCESSOR = "x86" | ||
| 42 | end | ||
| 38 | 43 | ||
| 39 | local LUA_MODULES = TARGET .. "/lua_modules" | 44 | local LUA_MODULES = TARGET_DIR .. "/lua_modules" |
| 40 | local CONFIG_DIR = TARGET .. "/.luarocks" | 45 | local CONFIG_DIR = TARGET_DIR .. "/.luarocks" |
| 41 | 46 | ||
| 42 | package.path = "./src/?.lua;" .. package.path | 47 | package.path = "./src/?.lua;" .. package.path |
| 43 | 48 | ||
| @@ -144,7 +149,7 @@ local function write_hardcoded_module(dir) | |||
| 144 | if if_platform("unix", true) then | 149 | if if_platform("unix", true) then |
| 145 | system, processor = sysdetect.detect() | 150 | system, processor = sysdetect.detect() |
| 146 | else | 151 | else |
| 147 | system, processor = "windows", "x86" | 152 | system, processor = "windows", PROCESSOR |
| 148 | end | 153 | end |
| 149 | 154 | ||
| 150 | local hardcoded = { | 155 | local hardcoded = { |
| @@ -400,7 +405,7 @@ local function generate(main_program, dir, skip) | |||
| 400 | 405 | ||
| 401 | os.remove(hardcoded) | 406 | os.remove(hardcoded) |
| 402 | 407 | ||
| 403 | local c_filename = TARGET .. "/" .. program_name .. ".exe.c" | 408 | local c_filename = TARGET_DIR .. "/" .. program_name .. ".exe.c" |
| 404 | local fd = io.open(c_filename, "w") | 409 | local fd = io.open(c_filename, "w") |
| 405 | fd:write(reindent_c(table.concat(out, "\n"))) | 410 | fd:write(reindent_c(table.concat(out, "\n"))) |
| 406 | fd:close() | 411 | fd:close() |
| @@ -409,7 +414,7 @@ local function generate(main_program, dir, skip) | |||
| 409 | deps.check_lua_libdir(cfg.variables) | 414 | deps.check_lua_libdir(cfg.variables) |
| 410 | 415 | ||
| 411 | cmd = table.concat(filter_in(nonnull, { | 416 | cmd = table.concat(filter_in(nonnull, { |
| 412 | CC, "-o", TARGET .. "/" .. program_name .. ".exe", | 417 | CC, "-o", TARGET_DIR .. "/" .. program_name .. ".exe", |
| 413 | "-I", cfg.variables.LUA_INCDIR, | 418 | "-I", cfg.variables.LUA_INCDIR, |
| 414 | if_platform("unix", "-rdynamic"), | 419 | if_platform("unix", "-rdynamic"), |
| 415 | "-Os", | 420 | "-Os", |
| @@ -453,7 +458,7 @@ local function main() | |||
| 453 | LIBFLAG = "-static", | 458 | LIBFLAG = "-static", |
| 454 | }, | 459 | }, |
| 455 | platforms = if_platform("windows", { "windows", "win32", "mingw32" }), | 460 | platforms = if_platform("windows", { "windows", "win32", "mingw32" }), |
| 456 | external_deps_dirs = if_platform("windows", { CROSSCOMPILER_SYSROOT, fs.current_dir().."/windows-deps" }), | 461 | external_deps_dirs = if_platform("windows", { CROSSCOMPILER_SYSROOT, fs.current_dir() .. "/windows-deps-" .. TRIPLET }), |
| 457 | }) | 462 | }) |
| 458 | 463 | ||
| 459 | local dependencies = { | 464 | local dependencies = { |
| @@ -167,8 +167,8 @@ then | |||
| 167 | cd .. | 167 | cd .. |
| 168 | rm -f "$out-linux-x86_64.zip.asc" | 168 | rm -f "$out-linux-x86_64.zip.asc" |
| 169 | 169 | ||
| 170 | make windows-binary | 170 | make windows-binary-32 |
| 171 | cd build-windows-binary | 171 | cd build-windows-binary-i686-w64-mingw32 |
| 172 | mkdir "$out-windows-32" | 172 | mkdir "$out-windows-32" |
| 173 | cp luarocks.exe "$out-windows-32/luarocks.exe" | 173 | cp luarocks.exe "$out-windows-32/luarocks.exe" |
| 174 | cp luarocks-admin.exe "$out-windows-32/luarocks-admin.exe" | 174 | cp luarocks-admin.exe "$out-windows-32/luarocks-admin.exe" |
| @@ -176,6 +176,15 @@ then | |||
| 176 | cd .. | 176 | cd .. |
| 177 | rm -f "$out-windows-32.zip.asc" | 177 | rm -f "$out-windows-32.zip.asc" |
| 178 | 178 | ||
| 179 | make windows-binary-64 | ||
| 180 | cd build-windows-binary-x86_64-w64-mingw32 | ||
| 181 | mkdir "$out-windows-64" | ||
| 182 | cp luarocks.exe "$out-windows-64/luarocks.exe" | ||
| 183 | cp luarocks-admin.exe "$out-windows-64/luarocks-admin.exe" | ||
| 184 | zip "../$out-windows-64.zip" "$out-windows-64"/* | ||
| 185 | cd .. | ||
| 186 | rm -f "$out-windows-64.zip.asc" | ||
| 187 | |||
| 179 | fi | 188 | fi |
| 180 | 189 | ||
| 181 | if [ "$1" = "sign" ] | 190 | if [ "$1" = "sign" ] |
| @@ -184,6 +193,7 @@ then | |||
| 184 | 193 | ||
| 185 | for f in \ | 194 | for f in \ |
| 186 | $out-windows-32.zip \ | 195 | $out-windows-32.zip \ |
| 196 | $out-windows-64.zip \ | ||
| 187 | $out-linux-x86_64.zip \ | 197 | $out-linux-x86_64.zip \ |
| 188 | $out-win32.zip \ | 198 | $out-win32.zip \ |
| 189 | $out.tar.gz | 199 | $out.tar.gz |
