diff options
author | Michael Pavone <pavone@retrodev.com> | 2015-06-28 18:44:11 -0700 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2015-06-28 18:44:11 -0700 |
commit | 983959f838575b6af3e64be442a63647312fcc61 (patch) | |
tree | 0fe8f3d105504051f1631575b52dc8bea79860a0 | |
parent | 834477c2a7f882752fc6ab272f8e01865db33720 (diff) |
Get "portable" builds working on Linux and add a build time check for whether /proc exists
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | util.c | 6 |
2 files changed, 10 insertions, 2 deletions
@@ -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 @@ -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; } |