summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile6
-rw-r--r--util.c6
2 files changed, 10 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index f1890da..ceba9d3 100644
--- a/Makefile
+++ b/Makefile
@@ -22,7 +22,8 @@ else
LIBS=sdl2 glew gl
endif #Darwin
-CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wno-unused-value -Wno-logical-op-parentheses
+HAS_PROC:=$(shell if [ -d /proc ]; then echo -e -DHAS_PROC; fi)
+CFLAGS:=-std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wno-unused-value -Wno-logical-op-parentheses $(HAS_PROC)
FIXUP:=
ifdef PORTABLE
CFLAGS+= -DGLEW_STATIC -Iglew/include
@@ -32,6 +33,9 @@ ifeq ($(OS),Darwin)
CFLAGS+= -IFrameworks/SDL2.framework/Headers
LDFLAGS+= -FFrameworks -framework SDL2 -framework OpenGL
FIXUP:=install_name_tool -change @rpath/SDL2.framework/Versions/A/SDL2 @executable_path/Frameworks/SDL2.framework/Versions/A/SDL2 ./blastem
+else
+CFLAGS+= -Isdl/include
+LDFLAGS+= -Wl,-rpath='$$ORIGIN/lib' -Llib -lSDL2 $(shell pkg-config --libs gl)
endif #Darwin
else
diff --git a/util.c b/util.c
index fc95011..20aa2ee 100644
--- a/util.c
+++ b/util.c
@@ -138,11 +138,12 @@ char * get_exe_dir()
{
static char * exe_dir;
if (!exe_dir) {
+ char * cur;
+#ifndef HAS_PROC
char * linktext = readlink_alloc("/proc/self/exe");
if (!linktext) {
goto fallback;
}
- char * cur;
int linksize = strlen(linktext);
for(cur = linktext + linksize - 1; cur != linktext; cur--)
{
@@ -154,6 +155,7 @@ char * get_exe_dir()
if (cur == linktext) {
free(linktext);
fallback:
+#endif
if (!exe_str) {
fputs("/proc/self/exe is not available and set_exe_str was not called!", stderr);
}
@@ -167,9 +169,11 @@ fallback:
break;
}
}
+#ifndef HAS_PROC
} else {
exe_dir = linktext;
}
+#endif
}
return exe_dir;
}