1 This directory contains the source code for the Setup program
2 for the Cygwin net releases.
10 Setup should build out-of-the-box on any Cygwin environment that has all the
11 required packages and their dependencies installed:
19 - mingw64-${arch}-bzip2
20 - mingw64-${arch}-gcc-g++
21 - mingw64-${arch}-headers
22 - mingw64-${arch}-libgcrypt
23 - mingw64-${arch}-libsolv
25 - mingw64-${arch}-zlib
26 - mingw64-${arch}-zstd
29 The ${arch} needs to be replaced with either "i686" or "x86_64"
30 depending on the target architecture to build for.
35 Setup should also build out-of-the-box in a Fedora environment that has all the
36 required packages and their dependencies installed:
43 - mingw${arch}-bzip2-static
44 - mingw${arch}-gcc-c++
45 - mingw${arch}-libgcrypt-static
46 - mingw${arch}-libgnurx-static
47 - mingw${arch}-libsolv-static (*)
48 - mingw${arch}-libzstd-static (**)
49 - mingw${arch}-winpthreads-static
50 - mingw${arch}-xz-libs-static
51 - mingw${arch}-zlib-static
54 The ${arch} needs to be replaced with either "32" or "64"
55 depending on the target architecture to build for.
57 (*) Requires 'dnf copr enable jturney/mingw-libsolv'
58 (**) Requires 'dnf copr enable jturney/mingw-zstd'
62 0) Obtain this project's source code:
63 $ git clone git://sourceware.org/git/cygwin-apps/setup.git
66 1) Configure using this option
67 $ /path/to/setup/bootstrap.sh
68 This will automatically rebuild configure files and run configure
69 in the current directory. If you have installed toolchains for
70 both i686 and x86_64 architectures, then you need to select for
71 which architecture you want to build:
72 $ /path/to/setup/bootstrap.sh --host=i686-w64-mingw32
73 $ /path/to/setup/bootstrap.sh --host=x86_64-w64-mingw32
77 3) Wondering why your binary is so much bigger than the official releases?
78 This removes debugging symbols:
80 This additionally compresses it using UPX
81 (requires package upx to be installed):
86 setup has a number of different code formats in it. This is ok as long
87 as it stays readable. When submitting a patch, make sure that you use
88 the coding-style of the surrounding code.
90 For new code, use the GNU standards as much as possible. We understand
91 that this is not a precise fit for C++ code but you can use Cygwin itself
97 Follow the general directions given in the Cygwin contributions document:
99 https://cygwin.com/contrib.html
101 The appropriate mailing list for this project is cygwin-apps
102 (rather than cygwin-patches). Thus, the appropriate final command would be:
104 $ git send-email --to="cygwin-apps@cygwin.com"