-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
109 lines (69 loc) · 3.18 KB
/
README
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
---------------------------
Generate GNULIB Environment
===========================
Author - Copyright (C) 2018, 2021 Mark Grant
--------
Contents
========
1 ... Project Description
2 ... Normal Location of Script
3 ... AutoTools (configure and make) Installation
4 ... Utility Scripts
-------------------------
1 ... Project Description
=========================
This script performs a setup for using gnulib based on my standard AutoTools
project structure. Essentially it runs the following command:-
gnulib-tool --import --dir=$basedir --source-base=src/prg/c/gen/lib \
--no-conditional-dependencies --no-libtool --no-vc-files configmake
where basedir defaults to the current directory or is passed to the command as
the 1 and only command line argument.
N.B.
----
At a source modification / development level, this project expects to reside in
a git environment. This manifests itself in 2 places:-
1) ... .gitignore files are included in the source.
2) ... The make target, 'srctarball', relies on the command 'git archive' so it
will fail if git is not installed or it is not in a git repository.
-------------------------------
2 ... Normal Location of Script
===============================
It is envisaged that the script can be dropped in to a project root directory
and invoked from there when necessary. This means that any project has a script
to help build that project. It also means that it does not have to be installed
as below.
-------------------------------------------------
3 ... AutoTools (configure and make) Installation
=================================================
a) ... Download either the source or distribution tarball (the .tar.gz file)
from:-
https://github.com/m-grant-prg/gen-gnulib/releases
b) ... Extract the tarball preserving the directory structure.
c) ... cd to the directory created.
d) ... If you downloaded the source tarball type 'autoreconf -if'
e) ... Type './configure'
f) ... As root or sudo, type 'make install clean'
(Quote marks are for textual clarity only).
To uninstall the package:
1 ... cd to the directory created in the above install process.
2 ... As root or sudo, type 'make uninstall clean'
---------------------
4 ... Utility Scripts
=====================
In the project root directory there is 1 helper script; bootstrap.sh.
bootstrap.sh
------------
This misleadingly named script bootstraps the project build and provides other
useful features. The main options below are probably b, c, C, D and T.
In AutoTools it is usually advisable to perform parallel builds. This means you
build somewhere other than the project root. This is because building creates
files and they would confuse the project root downwards. I always create a build
directory straight off the project root, cd to there and do all build and git
work from there, (.gitignore is already set to ignore such a directory).
Assuming you adopt the preceding paragraph then a typical invocation of the
script would be:-
../bootstrap.sh --config --build ..
The last '..' points the way to project root.
For the full list of arguments to bootstrap.sh, please refer to the options
section of the acmbuild wiki, the options are identical:-
https://github.com/m-grant-prg/acmbuild/wiki