Fix Makefile to work with FreeBSD BSD make
ober
5ed1791c98037da59e9e3f2767ccfa402c6f0bd0
--- a/Makefile +++ b/Makefile @@ -3,9 +3,11 @@ SCHEME = scheme JERBOA_LIB = $(HOME)/mine/jerboa/lib -LIB_DIR = $(CURDIR)/lib -BIN_DIR = $(CURDIR)/bin -SUPPORT_DIR = $(CURDIR)/support +# Use .CURDIR for BSD make, CURDIR for GNU make +TOPDIR != pwd +LIB_DIR = $(TOPDIR)/lib +BIN_DIR = $(TOPDIR)/bin +SUPPORT_DIR = $(TOPDIR)/support # All utility names (matches gerbil-coreutils) UTILS = true false yes echo printenv sleep whoami logname pwd \ @@ -36,7 +38,7 @@ UTILS = true false yes echo printenv sleep whoami logname pwd \ grep export CHEZSCHEMELIBDIRS = $(LIB_DIR):$(JERBOA_LIB) -export PROJECT_DIR = $(CURDIR) +export PROJECT_DIR = $(TOPDIR) # Default: build native multi-call binary .PHONY: all build binary clean test install help @@ -46,15 +48,15 @@ all: binary # Native multi-call binary (BusyBox-style, self-contained ELF) binary: $(SUPPORT_DIR)/libcoreutils.so @mkdir -p $(BIN_DIR) - PROJECT_DIR=$(CURDIR) $(SCHEME) --libdirs "$(CHEZSCHEMELIBDIRS)" -q < build-binary.ss + PROJECT_DIR=$(TOPDIR) $(SCHEME) --libdirs "$(CHEZSCHEMELIBDIRS)" -q < build-binary.ss # Legacy: build C shim + generate interpreter wrapper scripts build: $(SUPPORT_DIR)/libcoreutils.so $(BIN_DIR)/.generated $(SUPPORT_DIR)/libcoreutils.so: $(SUPPORT_DIR)/libcoreutils.c - gcc -shared -fPIC -O2 -o $@ $< + gcc -shared -fPIC -O2 -o $@ $(SUPPORT_DIR)/libcoreutils.c -$(BIN_DIR)/.generated: $(wildcard $(LIB_DIR)/jerboa-coreutils/*.sls) +$(BIN_DIR)/.generated: $(SUPPORT_DIR)/libcoreutils.so @mkdir -p $(BIN_DIR) @for util in $(UTILS); do \ echo '#!/bin/sh' > $(BIN_DIR)/$$util; \