File: README-hacking

package info (click to toggle)
ffcall 2.5-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,024 kB
  • sloc: asm: 100,607; ansic: 50,932; sh: 5,630; makefile: 1,588; cpp: 2
file content (91 lines) | stat: -rw-r--r-- 2,478 bytes parent folder | download
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