Suggest URLs for updated setup based on build architecture
[cygwin-setup.git] / README
blob524c34de08f058f3b6e7efd6fd8ba16b08bdac72
1 This directory contains the source code for the Setup program
2 for the Cygwin net releases.
4 HOW TO BUILD:
5 -------------
7 Cygwin
8 ------
10 Setup should build out-of-the-box on any Cygwin environment that has all the
11 required packages and their dependencies installed:
13   - autoconf
14   - automake
15   - bison
16   - flex
17   - libtool
18   - make
19   - mingw64-${arch}-bzip2
20   - mingw64-${arch}-gcc-g++
21   - mingw64-${arch}-headers
22   - mingw64-${arch}-libgcrypt
23   - mingw64-${arch}-libsolv
24   - mingw64-${arch}-xz
25   - mingw64-${arch}-zlib
26   - mingw64-${arch}-zstd
27   - upx (optional)
29 The ${arch} needs to be replaced with either "i686" or "x86_64"
30 depending on the target architecture to build for.
32 Fedora
33 ------
35 Setup should also build out-of-the-box in a Fedora environment that has all the
36 required packages and their dependencies installed:
38   - automake
39   - bison
40   - flex
41   - libtool
42   - make
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}-winpthreads-static
49   - mingw${arch}-xz-libs-static
50   - mingw${arch}-zlib-static
51   - mingw${arch}-zstd-static (**)
52   - upx (optional)
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'
60 Build commands:
62 0) Obtain this project's source code:
63    $ git clone git://sourceware.org/git/cygwin-apps/setup.git
64    $ cd setup
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
75 2) $ make
77 3) Wondering why your binary is so much bigger than the official releases?
78    This removes debugging symbols:
79    $ make strip
80    This additionally compresses it using UPX
81    (requires package upx to be installed):
82    $ make upx
84 CODING GUIDELINES:
85 ------------------
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
92 as a guide.
95 SUBMITTING A PATCH:
96 -------------------
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 an appropriate configuration is:
104    $ git config --local format.subjectprefix "PATCH setup"
105    $ git config --local sendemail.to "cygwin-apps@cygwin.com"
107 Before sending patches with:
109    $ git format-patch [--cover-letter]
110    $ git send-email *.patch
113 TRANSLATIONS
114 ------------
116 Translations of the gettext template res.pot can be made using PO file tools, or
117 online at https://hosted.weblate.org/projects/cygwin-setup/cygwin-setup/