aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael G. Martins <rafael@rafaelmartins.eng.br>2017-02-18 19:59:30 +0100
committerRafael G. Martins <rafael@rafaelmartins.eng.br>2017-02-18 19:59:30 +0100
commit144f49bdee2dd7d29748d2c3d2e3c0e5cfbfa34d (patch)
treed3e5124c81bd7b15ba9325e072efbb58c682d999
parent1d790b8c78a2925a788e7167ed8d9d52d8e23906 (diff)
downloadblogc-144f49bdee2dd7d29748d2c3d2e3c0e5cfbfa34d.tar.gz
blogc-144f49bdee2dd7d29748d2c3d2e3c0e5cfbfa34d.tar.bz2
blogc-144f49bdee2dd7d29748d2c3d2e3c0e5cfbfa34d.zip
make: git-receiver: fixes to build on OS X. patch by @blackgear
-rw-r--r--src/blogc-git-receiver/pre-receive.c13
-rw-r--r--src/blogc-make/ctx.h6
-rw-r--r--src/blogc-make/exec.c3
3 files changed, 17 insertions, 5 deletions
diff --git a/src/blogc-git-receiver/pre-receive.c b/src/blogc-git-receiver/pre-receive.c
index 15db99a..7ba6982 100644
--- a/src/blogc-git-receiver/pre-receive.c
+++ b/src/blogc-git-receiver/pre-receive.c
@@ -196,7 +196,8 @@ bgr_pre_receive_hook(int argc, char *argv[])
// command.
char *build_cmd = NULL;
if (0 == access("blogcfile", F_OK)) {
- if (127 == WEXITSTATUS(system("blogc-make -v 2> /dev/null > /dev/null"))) {
+ int status_bmake = system("blogc-make -v 2> /dev/null > /dev/null");
+ if (127 == WEXITSTATUS(status_bmake)) {
fprintf(stderr, "error: failed to find blogc-make binary\n");
rv = 3;
goto cleanup;
@@ -207,11 +208,15 @@ bgr_pre_receive_hook(int argc, char *argv[])
else if ((0 == access("Makefile", F_OK)) || (0 == access("GNUMakefile", F_OK))) {
const char *make_impl = NULL;
- if (127 != WEXITSTATUS(system("gmake -f /dev/null 2> /dev/null > /dev/null"))) {
+ int status_gmake = system("gmake -f /dev/null 2> /dev/null > /dev/null");
+ if (127 != WEXITSTATUS(status_gmake)) {
make_impl = "gmake";
}
- else if (127 != WEXITSTATUS(system("make -f /dev/null 2> /dev/null > /dev/null"))) {
- make_impl = "make";
+ else {
+ int status_make = system("make -f /dev/null 2> /dev/null > /dev/null");
+ if (127 != WEXITSTATUS(status_make)) {
+ make_impl = "make";
+ }
}
if (make_impl == NULL) {
diff --git a/src/blogc-make/ctx.h b/src/blogc-make/ctx.h
index df640a3..fdb02b8 100644
--- a/src/blogc-make/ctx.h
+++ b/src/blogc-make/ctx.h
@@ -15,6 +15,12 @@
#include "../common/error.h"
#include "../common/utils.h"
+#ifdef __APPLE__
+#ifndef st_mtim
+#define st_mtim st_mtimespec
+#endif
+#endif
+
typedef struct {
char *path;
char *short_path;
diff --git a/src/blogc-make/exec.c b/src/blogc-make/exec.c
index e1ff238..dafa6cb 100644
--- a/src/blogc-make/exec.c
+++ b/src/blogc-make/exec.c
@@ -352,7 +352,8 @@ bm_exec_blogc_runserver(const char *output_dir, bool verbose)
fflush(stdout);
// we don't need pipes to run blogc-runserver, because it is "interactive"
- int rv = WEXITSTATUS(system(cmd->str));
+ int status = system(cmd->str);
+ int rv = WEXITSTATUS(status);
bc_string_free(cmd, true);
if (rv != 0) {