terraform/Makefile

69 lines
1.5 KiB
Makefile
Raw Normal View History

2014-05-23 01:56:28 +02:00
CGO_CFLAGS:=-I$(CURDIR)/vendor/libucl/include
CGO_LDFLAGS:=-L$(CURDIR)/vendor/libucl
LIBUCL_NAME=libucl.a
TEST?=./...
# Windows-only
2014-05-23 01:56:28 +02:00
ifeq ($(OS), Windows_NT)
# The Libucl library is named libucl.dll
2014-05-23 01:56:28 +02:00
LIBUCL_NAME=libucl.dll
# Add the current directory on the path so the DLL is available.
export PATH := $(CURDIR):$(PATH)
2014-05-23 01:56:28 +02:00
endif
export CGO_CFLAGS CGO_LDFLAGS PATH
default: test
2014-07-28 19:53:36 +02:00
bin: config/y.go libucl
2014-06-26 20:11:21 +02:00
@sh -c "$(CURDIR)/scripts/build.sh"
2014-07-28 19:53:36 +02:00
dev: config/y.go libucl
@TF_DEV=1 sh -c "$(CURDIR)/scripts/build.sh"
2014-05-23 01:56:28 +02:00
libucl: vendor/libucl/$(LIBUCL_NAME)
2014-07-23 00:23:05 +02:00
test: config/y.go libucl
TF_ACC= go test $(TEST) $(TESTARGS) -timeout=10s
2014-05-23 01:56:28 +02:00
2014-07-23 00:23:05 +02:00
testacc: config/y.go libucl
@if [ "$(TEST)" = "./..." ]; then \
echo "ERROR: Set TEST to a specific package"; \
exit 1; \
fi
TF_ACC=1 go test $(TEST) -v $(TESTARGS)
2014-07-23 00:23:05 +02:00
testrace: config/y.go libucl
2014-07-10 22:33:57 +02:00
TF_ACC= go test -race $(TEST) $(TESTARGS)
2014-07-01 19:04:23 +02:00
2014-07-30 08:52:31 +02:00
updatedeps: config/y.go libucl
2014-06-26 19:33:39 +02:00
go get -u -v ./...
2014-07-23 00:23:05 +02:00
config/y.go: config/expr.y
cd config/ && \
go tool yacc -p "expr" expr.y
2014-05-23 01:56:28 +02:00
vendor/libucl/libucl.a: vendor/libucl
cd vendor/libucl && \
cmake cmake/ && \
make
vendor/libucl/libucl.dll: vendor/libucl
cd vendor/libucl && \
$(MAKE) -f Makefile.w32 && \
cp .obj/libucl.dll . && \
cp libucl.dll $(CURDIR)
vendor/libucl:
rm -rf vendor/libucl
mkdir -p vendor/libucl
git clone https://github.com/hashicorp/libucl.git vendor/libucl
cd vendor/libucl && \
git checkout fix-win32-compile
2014-05-23 01:56:28 +02:00
clean:
rm -rf vendor
2014-06-26 19:33:39 +02:00
.PHONY: clean default libucl test updatedeps