summaryrefslogtreecommitdiff
path: root/src/configure.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2026-02-10 19:38:36 +0100
committerBent Bisballe Nyeng <deva@aasimon.org>2026-02-25 19:02:50 +0100
commit1af138308d01f96dd979f0137394dcbd5971d5e1 (patch)
tree0c04c31a712d16ec834402b48729aa8c1d472b12 /src/configure.cc
parent5a3e0931e0e4ccd252c527b512ec1634d57489d8 (diff)
WIP: installinstall
Diffstat (limited to 'src/configure.cc')
-rw-r--r--src/configure.cc113
1 files changed, 102 insertions, 11 deletions
diff --git a/src/configure.cc b/src/configure.cc
index 5ba87c3..3a4abd4 100644
--- a/src/configure.cc
+++ b/src/configure.cc
@@ -286,6 +286,39 @@ int regenerateCache(ctor::settings& settings,
std::string ctor_libdir;
std::string builddir;
+ // Installation directories:
+ std::string prefix = "/usr/local";
+ std::string exec_prefix;//install architecture-dependent files in EPREFIX
+
+ // Fine tuning of the installation directories:
+ std::string bindir;// user executables [EPREFIX/bin]
+ std::string sbindir;// system admin executables [EPREFIX/sbin]
+ std::string libexecdir;// program executables [EPREFIX/libexec]
+ std::string sysconfdir;// read-only single-machine data [PREFIX/etc]
+ std::string sharedstatedir;// modifiable architecture-independent data [PREFIX/com]
+ std::string localstatedir;// modifiable single-machine data [PREFIX/var]
+ std::string runstatedir;// modifiable per-process data [LOCALSTATEDIR/run]
+ // object code libraries [EPREFIX/lib]
+ std::string libdir;
+ // C header files [PREFIX/include]
+ std::string includedir;
+ std::string oldincludedir;//C header files for non-gcc [/usr/include]
+ std::string datarootdir;// read-only arch.-independent data root [PREFIX/share]
+ std::string datadir;// read-only architecture-independent data [DATAROOTDIR]
+ std::string infodir;// info documentation [DATAROOTDIR/info]
+ std::string localedir;// locale-dependent data [DATAROOTDIR/locale]
+ std::string mandir;// man documentation [DATAROOTDIR/man]
+ std::string docdir;// documentation root [DATAROOTDIR/doc/drumgizmo]
+ std::string htmldir;// html documentation [DOCDIR]
+ std::string dvidir;// dvi documentation [DOCDIR]
+ std::string pdfdir;// pdf documentation [DOCDIR]
+ std::string psdir;// ps documentation [DOCDIR]
+
+ //Program names:
+ std::string program_prefix;// prepend PREFIX to installed program names
+ std::string program_suffix;// append SUFFIX to installed program names
+ std::string program_transform_name;//run sed PROGRAM on installed program names
+
opt.add('b', "--build-dir",
std::function([&](std::string arg)
{
@@ -384,6 +417,75 @@ int regenerateCache(ctor::settings& settings,
}),
"Set path to ctor library file, used for re-compiling.");
+ opt.add('h', "--help",
+ std::function([&]() -> int
+ {
+ std::cout << "Configure how to build with " << name << "\n";
+ std::cout << "Usage: " << name << " configure [options]\n\n";
+ std::cout << "Options:\n";
+ opt.help();
+ exit(0);
+ }),
+ "Print this help text.");
+/*
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [/usr/local]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, `make install' will install all the files in
+`/usr/local/bin', `/usr/local/lib' etc. You can specify
+an installation prefix other than `/usr/local' using `--prefix',
+for instance `--prefix=$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/drumgizmo]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+ */
+ opt.add("Installation directories");
+
+ opt.add({}, "--prefix",
+ std::function([&](std::string arg)
+ {
+ prefix = arg;
+ return 0;
+ }),
+ "Install architecture-independent files in <str> (" + prefix + ").");
+
+// opt.add({}, "--exec-prefix",
+// std::function([&](std::string arg)
+// {
+// exec_prefix = arg;
+// return 0;
+// }),
+// "Install architecture-dependent files in <str> (" + prefix + ").");
+
// Resolv externals
ctor::external_configurations externalConfigs;
const auto& externalConfigFiles = getExternalConfigFileList();
@@ -432,17 +534,6 @@ int regenerateCache(ctor::settings& settings,
}
- opt.add('h', "--help",
- std::function([&]() -> int
- {
- std::cout << "Configure how to build with " << name << "\n";
- std::cout << "Usage: " << name << " configure [options]\n\n";
- std::cout << "Options:\n";
- opt.help();
- exit(0);
- }),
- "Print this help text.");
-
opt.set_err_cb(
[&](arg::error err, std::string_view arg)
{