]>
Commit | Line | Data |
---|---|---|
e76de0f5 MB |
1 | This directory contains the source code for the Setup program |
2 | for the Cygwin net releases. | |
93014d67 | 3 | |
e76de0f5 MB |
4 | HOW TO BUILD: |
5 | ------------- | |
1c159e0a JT |
6 | |
7 | Cygwin | |
8 | ------ | |
9 | ||
e76de0f5 | 10 | Setup should build out-of-the-box on any Cygwin environment that has all the |
77303bce AG |
11 | required packages and their dependencies installed: |
12 | ||
ddb9b095 JT |
13 | - autoconf |
14 | - automake | |
15 | - bison | |
16 | - flex | |
17 | - libtool | |
e76de0f5 | 18 | - make |
ddb9b095 | 19 | - mingw64-${arch}-bzip2 |
77303bce | 20 | - mingw64-${arch}-gcc-g++ |
ddb9b095 | 21 | - mingw64-${arch}-headers |
77303bce | 22 | - mingw64-${arch}-libgcrypt |
1c159e0a | 23 | - mingw64-${arch}-libsolv |
77303bce AG |
24 | - mingw64-${arch}-xz |
25 | - mingw64-${arch}-zlib | |
ddb9b095 | 26 | - mingw64-${arch}-zstd |
6b9b1c33 | 27 | - upx (optional) |
e76de0f5 | 28 | |
77303bce | 29 | The ${arch} needs to be replaced with either "i686" or "x86_64" |
ddb9b095 | 30 | depending on the target architecture to build for. |
e76de0f5 | 31 | |
1c159e0a JT |
32 | Fedora |
33 | ------ | |
34 | ||
35 | Setup should also build out-of-the-box in a Fedora environment that has all the | |
36 | required packages and their dependencies installed: | |
37 | ||
ddb9b095 JT |
38 | - automake |
39 | - bison | |
40 | - flex | |
1c159e0a | 41 | - libtool |
ddb9b095 JT |
42 | - make |
43 | - mingw${arch}-bzip2-static | |
1c159e0a | 44 | - mingw${arch}-gcc-c++ |
1c159e0a | 45 | - mingw${arch}-libgcrypt-static |
73979cb6 JT |
46 | - mingw${arch}-libgnurx-static |
47 | - mingw${arch}-libsolv-static (*) | |
ddb9b095 | 48 | - mingw${arch}-libzstd-static (**) |
1c159e0a | 49 | - mingw${arch}-winpthreads-static |
ddb9b095 JT |
50 | - mingw${arch}-xz-libs-static |
51 | - mingw${arch}-zlib-static | |
1c159e0a JT |
52 | - upx (optional) |
53 | ||
54 | The ${arch} needs to be replaced with either "32" or "64" | |
55 | depending on the target architecture to build for. | |
56 | ||
57 | (*) Requires 'dnf copr enable jturney/mingw-libsolv' | |
ddb9b095 | 58 | (**) Requires 'dnf copr enable jturney/mingw-zstd' |
1c159e0a | 59 | |
e76de0f5 | 60 | Build commands: |
77303bce | 61 | |
ddb9b095 | 62 | 0) Obtain this project's source code: |
7a37c290 RR |
63 | $ git clone git://sourceware.org/git/cygwin-apps/setup.git |
64 | $ cd setup | |
65 | ||
0963fbe7 CF |
66 | 1) Configure using this option |
67 | $ /path/to/setup/bootstrap.sh | |
77303bce AG |
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 | |
74 | ||
0963fbe7 | 75 | 2) $ make |
e76de0f5 | 76 | |
0963fbe7 | 77 | 3) Wondering why your binary is so much bigger than the official releases? |
07f1b4a8 CV |
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 | |
e76de0f5 | 83 | |
e76de0f5 MB |
84 | CODING GUIDELINES: |
85 | ------------------ | |
86 | setup has a number of different code formats in it. This is ok as long | |
3056fe92 CF |
87 | as it stays readable. When submitting a patch, make sure that you use |
88 | the coding-style of the surrounding code. | |
e76de0f5 | 89 | |
0963fbe7 CF |
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. | |
e76de0f5 MB |
93 | |
94 | ||
95 | SUBMITTING A PATCH: | |
96 | ------------------- | |
7a37c290 RR |
97 | Follow the general directions given in the Cygwin contributions document: |
98 | ||
99 | https://cygwin.com/contrib.html | |
100 | ||
101 | The appropriate mailing list for this project is cygwin-apps | |
102 | (rather than cygwin-patches). Thus, the appropriate final command would be: | |
0963fbe7 | 103 | |
80abe899 | 104 | $ git send-email --to="cygwin-apps@cygwin.com" |