aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2020-06-07 01:50:39 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2020-06-07 01:50:39 -0400
commit36aa0989cda8fe658bc5b1d2079a20100112c41a (patch)
tree17b6aa92a38d92876cf6254c85b4e991005c889c
parent48d376da4787daa691a7ab04ad4fc6dc6132e42d (diff)
downloadspmc-36aa0989cda8fe658bc5b1d2079a20100112c41a.tar.gz
Finalize flags
-rw-r--r--lib/internal_cmd.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/lib/internal_cmd.c b/lib/internal_cmd.c
index c893fc9..8aa6ab2 100644
--- a/lib/internal_cmd.c
+++ b/lib/internal_cmd.c
@@ -292,18 +292,29 @@ int mkruntime_interface(int argc, char **argv) {
runtime_set(rt, "ACLOCAL_PATH", "${SPM_DATA}/aclocal:$$ACLOCAL_PATH");
char *spm_ccpath = join((char *[]) {fs->bindir, "gcc", NULL}, DIRSEPS);
+ char *spm_cxxpath = join((char *[]) {fs->bindir, "g++", NULL}, DIRSEPS);
+ char *spm_fcpath = join((char *[]) {fs->bindir, "gfortran", NULL}, DIRSEPS);
+
if (exists(spm_ccpath) == 0) {
runtime_set(rt, "CC", "$SPM_BIN/gcc");
}
- runtime_set(rt, "CFLAGS", "$$CFLAGS -I$SPM_INCLUDE");
- runtime_set(rt, "CPPFLAGS", "$CFLAGS");
- runtime_set(rt, "CXXFLAGS", "$$CXXFLAGS -I$SPM_INCLUDE");
+ if (exists(spm_cxxpath) == 0) {
+ runtime_set(rt, "CXX", "$SPM_BIN/g++");
+ }
+
+ if (exists(spm_fcpath) == 0) {
+ runtime_set(rt, "FC", "$SPM_BIN/gfortran");
+ }
+
+ runtime_set(rt, "CFLAGS", "-I$SPM_INCLUDE");
+ runtime_set(rt, "CPPFLAGS", "-I$SPM_INCLUDE");
+ runtime_set(rt, "CXXFLAGS", "-I$SPM_INCLUDE");
#if OS_DARWIN
// For now `reloc` can fix up the LC_ID_DYLIB on its own without install_name_tool
- runtime_set(rt, "LDFLAGS", "$$LDFLAGS -rpath,$SPM_LIB -L$SPM_LIB");
+ runtime_set(rt, "LDFLAGS", "-Wl,-rpath,$SPM_LIB -L$SPM_LIB");
#elif OS_LINUX
- runtime_set(rt, "LDFLAGS", "-Wl,-rpath=$SPM_LIB:$SPM_LIB64 -L$SPM_LIB -L$SPM_LIB64 $LDFLAGS");
+ runtime_set(rt, "LDFLAGS", "-Wl,-rpath=$SPM_LIB:$SPM_LIB64 -L$SPM_LIB -L$SPM_LIB64");
#else
// TODO: Windows?
#endif
@@ -316,6 +327,8 @@ int mkruntime_interface(int argc, char **argv) {
free(spm_pkgconfigdir);
free(spm_ccpath);
+ free(spm_cxxpath);
+ free(spm_fcpath);
spm_hierarchy_free(fs);
return 0;
}