diff options
author | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2017-02-18 19:59:30 +0100 |
---|---|---|
committer | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2017-02-18 19:59:30 +0100 |
commit | 144f49bdee2dd7d29748d2c3d2e3c0e5cfbfa34d (patch) | |
tree | d3e5124c81bd7b15ba9325e072efbb58c682d999 | |
parent | 1d790b8c78a2925a788e7167ed8d9d52d8e23906 (diff) | |
download | blogc-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.c | 13 | ||||
-rw-r--r-- | src/blogc-make/ctx.h | 6 | ||||
-rw-r--r-- | src/blogc-make/exec.c | 3 |
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) { |