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 91
|
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
|