lsteamclient: Fix building as a winemaker project

This commit is contained in:
Andrew Eikum 2018-01-18 10:38:13 -06:00
parent 88f3462bc1
commit 0b2c856af7
34 changed files with 60 additions and 122 deletions

View file

@ -2,34 +2,74 @@
set -e set -e
RUNTIME_PATH="$PWD/../../runtime/steam-runtime-both/"
#./wine/ <-- wine source #./wine/ <-- wine source
#./build/ <-- built files #./build/ <-- built files
#./dist/ <-- proton build, ready to distribute #./dist/ <-- proton build, ready to distribute
mkdir -p dist/ build/wine.win32 build/dist.win32 build/wine.win64 mkdir -p dist/ build/wine.win32 build/dist.win32 build/wine.win64
DST_DIR="$PWD/dist" TOP="$PWD"
RUNTIME_PATH="$TOP/../../runtime/steam-runtime-both/"
DST_DIR="$TOP/dist"
TOOLS_DIR64="$TOP/build/tools.win64"
TOOLS_DIR32="$TOP/build/tools.win32"
cp -a toolmanifest.vdf dist/ cp -a toolmanifest.vdf dist/
cd build/wine.win64 #build wine64
CC="ccache gcc" "$RUNTIME_PATH/shell-amd64.sh" ../../wine/configure --enable-win64 --disable-tests --prefix="$DST_DIR" cd "$TOP"/build/wine.win64
CC="ccache gcc" "$RUNTIME_PATH/shell-amd64.sh" "$TOP"/wine/configure --enable-win64 --disable-tests --prefix="$DST_DIR"
"$RUNTIME_PATH/shell-amd64.sh" make "$RUNTIME_PATH/shell-amd64.sh" make
"$RUNTIME_PATH/shell-amd64.sh" make install-lib "$RUNTIME_PATH/shell-amd64.sh" make install-lib
"$RUNTIME_PATH/shell-amd64.sh" make prefix="$TOOLS_DIR64" libdir="$TOOLS_DIR64/lib64" dlldir="$TOOLS_DIR64/lib64/wine" install-dev install-lib
cd ../wine.win32 #build wine32
CC="ccache gcc" "$RUNTIME_PATH/shell-i386.sh" ../../wine/configure --disable-tests --prefix="$PWD/../dist.win32/" cd "$TOP"/build/wine.win32
CC="ccache gcc" "$RUNTIME_PATH/shell-i386.sh" "$TOP"/wine/configure --disable-tests --prefix="$TOP/build/dist.win32/"
"$RUNTIME_PATH/shell-i386.sh" make "$RUNTIME_PATH/shell-i386.sh" make
"$RUNTIME_PATH/shell-i386.sh" make install-lib "$RUNTIME_PATH/shell-i386.sh" make install-lib
"$RUNTIME_PATH/shell-i386.sh" make prefix="$TOOLS_DIR32" libdir="$TOOLS_DIR32/lib" dlldir="$TOOLS_DIR32/lib/wine" install-dev install-lib
#install 32-bit stuff manually, see #install 32-bit stuff manually, see
# https://wiki.winehq.org/Packaging#WoW64_Workarounds # https://wiki.winehq.org/Packaging#WoW64_Workarounds
cd ../dist.win32/ cd "$TOP"/build/dist.win32/
cp -a lib "$DST_DIR"/ cp -a lib "$DST_DIR"/
cp -a bin/wine "$DST_DIR"/bin/ cp -a bin/wine "$DST_DIR"/bin/
cp -a bin/wine-preloader "$DST_DIR"/bin/ cp -a bin/wine-preloader "$DST_DIR"/bin/
cp -a bin/wineserver "$DST_DIR"/bin/wineserver32 cp -a bin/wineserver "$DST_DIR"/bin/wineserver32
#build 64-bit lsteamclient
cd "$TOP"
rm -rf build/lsteamclient.win64
cp -a lsteamclient build/lsteamclient.win64
cd "$TOP"/build/lsteamclient.win64/
"$RUNTIME_PATH/shell-amd64.sh" "$TOP"/wine/tools/winemaker/winemaker \
--nosource-fix --nolower-include --nodlls --nomsvcrt \
-DSTEAM_API_EXPORTS \
-I"$TOOLS_DIR64"/include/ \
-I"$TOOLS_DIR64"/include/wine/ \
-I"$TOOLS_DIR64"/include/wine/windows/ \
-L"$TOOLS_DIR64"/lib64/ \
-L"$TOOLS_DIR64"/lib64/wine/ \
--dll .
CXXFLAGS=-Wno-attributes PATH="$TOOLS_DIR64/bin:$PATH" "$RUNTIME_PATH/shell-amd64.sh" make
cp -a lsteamclient.dll.so "$TOP"/dist/lib64/wine/
#build 32-bit lsteamclient
cd "$TOP"
rm -rf build/lsteamclient.win32
cp -a lsteamclient build/lsteamclient.win32
cd "$TOP"/build/lsteamclient.win32/
"$RUNTIME_PATH/shell-i386.sh" "$TOP"/wine/tools/winemaker/winemaker \
--nosource-fix --nolower-include --nodlls --nomsvcrt --wine32 \
-DSTEAM_API_EXPORTS \
-I"$TOOLS_DIR32"/include/ \
-I"$TOOLS_DIR32"/include/wine/ \
-I"$TOOLS_DIR32"/include/wine/windows/ \
-L"$TOOLS_DIR32"/lib/ \
-L"$TOOLS_DIR32"/lib/wine/ \
--dll .
CXXFLAGS=-Wno-attributes PATH="$TOOLS_DIR32/bin:$PATH" "$RUNTIME_PATH/shell-i386.sh" make -j1
cp -a lsteamclient.dll.so "$TOP"/dist/lib/wine/
echo "Proton ready in dist/" echo "Proton ready in dist/"

View file

@ -18,6 +18,12 @@
/* Copied from dlls/msvcrt/cxx.h */ /* Copied from dlls/msvcrt/cxx.h */
#undef __thiscall #undef __thiscall
#define __ASM_NAME(name) name
#define __ASM_DEFINE_FUNC(name,suffix,code) asm(".text\n\t.align 4\n\t.globl " #name suffix "\n\t.type " #name suffix ",@function\n" #name suffix ":\n\t.cfi_startproc\n\t" code "\n\t.cfi_endproc\n\t.previous");
#define __ASM_GLOBAL_FUNC(name,code) __ASM_DEFINE_FUNC(name,"",code)
#define __ASM_STDCALL(args) ""
#ifdef __i386__ /* thiscall functions are i386-specific */ #ifdef __i386__ /* thiscall functions are i386-specific */
#define THISCALL(func) __thiscall_ ## func #define THISCALL(func) __thiscall_ ## func

View file

@ -8,3 +8,5 @@ rm cpp*.h
rm cb*.h rm cb*.h
rm cb*.cpp rm cb*.cpp
rm cb*.dat rm cb*.dat
./gen_wrapper.py

View file

@ -296,8 +296,6 @@ def handle_class(sdkver, classnode):
cfile = open("%s.c" % winname, "a") cfile = open("%s.c" % winname, "a")
if not file_exists: if not file_exists:
cfile.write("""/* This file is auto-generated, do not edit. */ cfile.write("""/* This file is auto-generated, do not edit. */
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -22,8 +22,6 @@ BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
switch (reason) switch (reason)
{ {
case DLL_WINE_PREATTACH:
return FALSE; /* prefer native version */
case DLL_PROCESS_ATTACH: case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(instance); DisableThreadLibraryCalls(instance);
break; break;

View file

@ -31,3 +31,7 @@ typedef struct __winX winX;
void *create_win_interface(const char *name, void *linux_side); void *create_win_interface(const char *name, void *linux_side);
unsigned int steamclient_unix_path_to_dos_path(unsigned int api_result, char *inout, unsigned int inout_bytes); unsigned int steamclient_unix_path_to_dos_path(unsigned int api_result, char *inout, unsigned int inout_bytes);
void *create_LinuxMatchmakingServerListResponse(void *win); void *create_LinuxMatchmakingServerListResponse(void *win);
#define TRACE WINE_TRACE
#define ERR WINE_ERR
#define WARN WINE_WARN

View file

@ -1,7 +1,5 @@
/* Linux-to-Windows conversions (i.e. callbacks) here. */ /* Linux-to-Windows conversions (i.e. callbacks) here. */
#include "config.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"

View file

@ -1,8 +1,4 @@
/* This file is auto-generated, do not edit. */ /* This file is auto-generated, do not edit. */
#include "config.h"
#include "wine/port.h"
#include <stdarg.h> #include <stdarg.h>
#include "windef.h" #include "windef.h"