-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME-hacking
91 lines (62 loc) · 2.42 KB
/
README-hacking
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
All you need to know when hacking (modifying) GNU libffcall or when building
it off the git repository.
Requirements
============
You will need reasonably recent versions of the build tools:
* A C compiler. Such as GNU GCC.
+ Homepage:
https://gcc.gnu.org/
* GNU automake 1.15 or newer
+ Homepage:
https://www.gnu.org/software/automake/
* GNU autoconf 2.69 or newer
+ Homepage:
https://www.gnu.org/software/autoconf/
* GNU m4
+ Homepage:
https://www.gnu.org/software/m4/
* GNU groff 1.17 or newer
+ Homepage:
https://www.gnu.org/software/groff/
* Either an internet connection or a recent copy of GNU gnulib.
+ Homepage:
https://www.gnu.org/software/gnulib/
* GNU tar (for creating distributable tarballs)
+ Homepage:
https://www.gnu.org/software/tar/
And, of course, the packages listed in the DEPENDENCIES file.
Cross-compilation tools
=======================
The Makefile.devel has rules to regenerate some *.s and *.S files, using
GCC cross-compiler builds. You find a table of these cross-compilers in
the file cross-tools/cross.conf.
To build all these cross-compilers, use the file cross-tools/cross-build.sh.
See the comments at the top of cross-tools/cross-build.sh for how to use it.
When done, copy the generated 'cross' script into your $PATH so that
Makefile.devel will find it.
Alternatively, if you are running Linux/x86_64, you can use a premade Docker
image that contains these cross-compilers. The command to fetch and use it is:
docker run --rm -t -i registry.gitlab.com/gnu-libffcall/ci-buildtools:ubuntu1604
Building off the git repository
===============================
Access to the git repository is described at
https://savannah.gnu.org/git/?group=libffcall
After fetching the sources from the repository:
1. Create the cross-compilation tools, as described above.
2. Regenerate the *.s and *.S files, by running
make -f Makefile.devel
3. Run
./autopull.sh
./autogen.sh
4. Then you can proceed with
./configure
as usual.
Each time you want to update the source, do not only "git pull". Instead do
git pull && ./autopull.sh
./autogen.sh
Continuous integration
======================
The package is built automatically, at regular intervals. You find the latest
build results here:
https://gitlab.com/gnu-libffcall/ci-distcheck/pipelines
https://gitlab.com/gnu-libffcall/ci-distcheck/-/jobs?scope=finished