Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 30 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,38 +19,50 @@ involved! We welcome all contributions.

The ServerExe directory contains the server-side components of
SeamlessRDP: the SeamlessRDP shell and window hooks. It uses a
autotools-based build system.
autotools-based build system. It is designed to support both 32 and
64bit applications and therefore building is a bit complicated.


## Building from a source archive (seamlessrdp-1.0.tar.gz)
## Build instructions (Linux)

cd seamlessrdp-1.0
./configure
make
You need to have both mingw32 and mingw64 installed to be able to
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For Fedora, you want mingw32-gcc and mingw64-gcc installed. You then run mingw32-configure or mingw64-configure instead of ./configure, then make as usual. You don't have to bother with knowing the host triplets for 32- and 64-bit environments.

On Ubuntu, installing mingw-w64 will get the cross-compiler for both 32 and 64-bit applications set up properly. The host triplet on Ubuntu is i686-w64-mingw32 and x86_64-w64-mingw32, and the regular build instructions are OK.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe it's better if we tell our users the specific packages they need (on a few select distros) rather than the generalized info that might not be helpful enough for some.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For Fedora, you want mingw32-gcc and mingw64-gcc installed. You then run mingw32-configure or mingw64-configure instead of ./configure, then make as usual. You don't have to bother with knowing the host triplets for 32- and 64-bit environments.

It works perfectly fine to run ./configure --host= on fedora so with that in mind, these instruction does not differs from whenever you are on ubuntu or fedora. Only the way how to get the two compilers installed, which we do not mention and care about.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright. I still think there's value in describing how to set up the cross-compiling environment, but we can leave that for a wiki page or something.

cross compile so that you can build both 32 and 64bit binaries for
Windows. To build 64bit version of SeamlessRDP, mingw32 is required to
be built due to that the 64bit version of SeamlessRDP can launch 32bit
applications.

Enter the ServerExe directory.

## Building from a git checkout
cd ServerExe

cd ServerExe
./autogen.sh
./configure
make
Skip the following step to setup build environment if you have
downloaded a release tarball of SeamlessRDP.

./autogen.sh

## Cross-compiling from Linux
Start with building the 32bit binaries as following:

With a cross-compiling environment for Windows installed, tell
configure that you want to build for a Windows platform by running
`./configure` with `--host` set to a suitable triplet for your
cross-compiling setup. Examples:
./configure --host=i686-pc-mingw32
make

./configure --host=i686-pc-mingw32 # for 32-bit Windows
./configure --host=x86_64-w64-mingw32 # for 64-bit Windows
This produces seamlessrdp32.dll, seamlesrdphook32.exe and 32bit
version of seamlessrdpshell.exe. If you only want a 32bit version of
SeamlessRDP, you are now done with the building and can continue with
the Installation step below.

If you want to build 64bit version, build the 64 binaries like this:

./configure --host==x86_64-w64-mingw32
make

This step produces seamlessrdp64.dll, seamlessrdphook64.exe and a
64bit version of seamlesrdpshell.exe, which completes the set of files
for 64bit version of SeamlessRDP.


# Installing

After compiling with `make`, you can create a zip file with the
After building SeamlessRDP, you can create a zip file with the
required contents.

zip -j seamlessrdp.zip .libs/seamlessrdpshell.exe .libs/seamlessrdp??.dll .libs/seamlessrdphook??.exe
Expand Down