aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2020-03-10 02:00:34 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2020-03-10 02:00:34 -0400
commit5ab3003fdab6e62fedd5f2f2fd9a31e343da08e3 (patch)
treecb9bfb335f517c9c07acf5dc4729844f53fff83e /src
parent8f0f8c5fa05f02dcff460a5f362eb069be8b2a0e (diff)
downloadspmc-5ab3003fdab6e62fedd5f2f2fd9a31e343da08e3.tar.gz
Improvements
* Add SPM_LIB64 and ACLOCAL_PATH to mkruntime_interface * Add more search paths to PKG_CONFIG_PATH * Add existence check to rpath_autoset_interface * Fix rpath_autoset_interface_usage output
Diffstat (limited to 'src')
-rw-r--r--src/internal_cmd.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/internal_cmd.c b/src/internal_cmd.c
index ef828c8..a192ccf 100644
--- a/src/internal_cmd.c
+++ b/src/internal_cmd.c
@@ -168,10 +168,12 @@ int mkruntime_interface(int argc, char **argv) {
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_LIB64", "${SPM_LIB}64");
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_PKGCONFIG", "${SPM_PKGCONFIG}:${SPM_LIB64}/pkgconfig:${SPM_DATA}/pkgconfig");
runtime_set(rt, "SPM_META_DEPENDS", SPM_META_DEPENDS);
runtime_set(rt, "SPM_META_PREFIX_BIN", SPM_META_PREFIX_BIN);
runtime_set(rt, "SPM_META_PREFIX_TEXT", SPM_META_PREFIX_TEXT);
@@ -182,6 +184,7 @@ int mkruntime_interface(int argc, char **argv) {
runtime_set(rt, "PATH", "$SPM_BIN:$PATH");
runtime_set(rt, "MANPATH", "$SPM_MAN:$MANPATH");
runtime_set(rt, "PKG_CONFIG_PATH", "$SPM_PKGCONFIG:$PKG_CONFIG_PATH");
+ runtime_set(rt, "ACLOCAL_PATH", "${SPM_DATA}/aclocal");
char *spm_ccpath = join((char *[]) {fs->bindir, "gcc"}, DIRSEPS);
if (exists(spm_ccpath) == 0) {
@@ -189,7 +192,7 @@ int mkruntime_interface(int argc, char **argv) {
}
runtime_set(rt, "CFLAGS", "-I$SPM_INCLUDE $CFLAGS");
- runtime_set(rt, "LDFLAGS", "-Wl,-rpath=$SPM_LIB:$SPM_BIN/../lib -L$SPM_LIB $LDFLAGS");
+ runtime_set(rt, "LDFLAGS", "-Wl,-rpath=$SPM_LIB:$SPM_LIB64 -L$SPM_LIB -L$SPM_LIB64 $LDFLAGS");
runtime_export(rt, NULL);
runtime_free(rt);
@@ -260,7 +263,7 @@ int rpath_set_interface(int argc, char **argv) {
*
*/
void rpath_autoset_interface_usage(void) {
- printf("usage: rpath_autoset {file}\n");
+ printf("usage: rpath_autoset {file} {topdir}\n");
}
/**
@@ -276,6 +279,17 @@ int rpath_autoset_interface(int argc, char **argv) {
}
char *filename = argv[1];
const char *topdir = argv[2];
+
+ if (exists(filename) != 0) {
+ perror(filename);
+ return -1;
+ }
+
+ if (exists(topdir) != 0) {
+ perror(topdir);
+ return -1;
+ }
+
FSTree *libs = rpath_libraries_available(topdir);
int result = rpath_autoset(filename, libs);