aboutsummaryrefslogtreecommitdiff
path: root/src/internal_cmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/internal_cmd.c')
-rw-r--r--src/internal_cmd.c34
1 files changed, 12 insertions, 22 deletions
diff --git a/src/internal_cmd.c b/src/internal_cmd.c
index 08bc158..47a0532 100644
--- a/src/internal_cmd.c
+++ b/src/internal_cmd.c
@@ -141,7 +141,7 @@ int mkmanifest_interface(int argc, char **argv) {
*
*/
void mkruntime_interface_usage(void) {
- printf("usage: mkruntime {root_dir}");
+ printf("usage: mkruntime {root_dir}\n");
}
/**
@@ -162,20 +162,15 @@ int mkruntime_interface(int argc, char **argv) {
}
char *root = argv[1];
- char *spm_bindir = join((char *[]) {root, "bin", NULL}, DIRSEPS);
- char *spm_includedir = join((char *[]) {root, "include", NULL}, DIRSEPS);
- char *spm_libdir = join((char *[]) {root, "lib", NULL}, DIRSEPS);
- char *spm_datadir = join((char *[]) {root, "share", NULL}, DIRSEPS);
- char *spm_mandir = join((char *[]) {spm_datadir, "man", NULL}, DIRSEPS);
- char *spm_localstatedir = join((char *[]) {root, "var", NULL}, DIRSEPS);
- char *spm_pkgconfigdir = join((char *[]) {spm_libdir, "pkgconfig", NULL}, DIRSEPS);
-
- runtime_set(rt, "SPM_BIN", spm_bindir);
- runtime_set(rt, "SPM_INCLUDE", spm_includedir);
- runtime_set(rt, "SPM_LIB", spm_libdir);
- runtime_set(rt, "SPM_DATA", spm_datadir);
- runtime_set(rt, "SPM_MAN", spm_mandir);
- runtime_set(rt, "SPM_LOCALSTATE", spm_localstatedir);
+ SPM_Hierarchy *fs = spm_hierarchy_init(root);
+ char *spm_pkgconfigdir = join((char *[]) {fs->libdir, "pkgconfig", NULL}, DIRSEPS);
+
+ runtime_set(rt, "SPM_BIN", fs->bindir);
+ runtime_set(rt, "SPM_INCLUDE", fs->includedir);
+ runtime_set(rt, "SPM_LIB", fs->libdir);
+ runtime_set(rt, "SPM_DATA", fs->datadir);
+ runtime_set(rt, "SPM_MAN", fs->mandir);
+ runtime_set(rt, "SPM_LOCALSTATE", fs->localstatedir);
runtime_set(rt, "SPM_PKGCONFIG", spm_pkgconfigdir);
runtime_set(rt, "SPM_META_DEPENDS", SPM_META_DEPENDS);
runtime_set(rt, "SPM_META_PREFIX_BIN", SPM_META_PREFIX_BIN);
@@ -188,7 +183,7 @@ int mkruntime_interface(int argc, char **argv) {
runtime_set(rt, "MANPATH", "$SPM_MAN:$MANPATH");
runtime_set(rt, "PKG_CONFIG_PATH", "$SPM_PKGCONFIG:$PKG_CONFIG_PATH");
- char *spm_ccpath = join((char *[]) {spm_bindir, "gcc"}, DIRSEPS);
+ char *spm_ccpath = join((char *[]) {fs->bindir, "gcc"}, DIRSEPS);
if (exists(spm_ccpath) == 0) {
runtime_set(rt, "CC", "$SPM_BIN/gcc");
}
@@ -198,14 +193,9 @@ int mkruntime_interface(int argc, char **argv) {
runtime_export(rt, NULL);
runtime_free(rt);
- free(spm_bindir);
- free(spm_includedir);
- free(spm_libdir);
- free(spm_datadir);
- free(spm_mandir);
- free(spm_localstatedir);
free(spm_pkgconfigdir);
free(spm_ccpath);
+ spm_hierarchy_free(fs);
return 0;
}