diff options
| author | Joe Richey <joerichey@google.com> | 2017-03-31 10:14:20 -0700 |
|---|---|---|
| committer | Joe Richey joerichey@google.com <joerichey@google.com> | 2017-05-02 13:39:17 -0700 |
| commit | f49cd711a063136e6978b6a4bb2686d96c725bc8 (patch) | |
| tree | a43187ee130be7259138d50ff5b5a8fd85d39ab9 /Makefile | |
| parent | da76c0cc83d4f6ab5ec0d8a3a23c18aa18b71e9e (diff) | |
cmd/fscrypt: Initial stub program and docs
This commit adds in a stub fscrypt program. The binary just tells the
time and the tests do nothing, but the Makefile will build them! This
commit also adds documentation to the README that explains how to get,
build, run, test, format, lint, and install the code.
Also note that the executable is now in the cmd/fscrypt directory. The
library implementing the core functionality will be at the root. This
is essentially point 2 of https://medium.com/@benbjohnson/structuring-applications-in-go-3b04be4ff091
Change-Id: Ib7bd782e458bdf3db456beb978be4c75b4734561
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..a174471 --- /dev/null +++ b/Makefile @@ -0,0 +1,57 @@ +# Makefile for fscrypt +# +# Copyright 2017 Google Inc. +# Author: Joe Richey (joerichey@google.com) +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +NAME = fscrypt +BUILD_DIR = build +CFLAGS += -O2 -Wall + +CMD_DIR = $(NAME)/cmd/$(NAME) + +# So we don't have to put our flags in each go file. This also lets the caller +# of the makefile change the build flags in the normal manner: +# make fscrypt "LDFLAGS += -static" +export CGO_CFLAGS = $(CFLAGS) +ifdef LDFLAGS + GOFLAGS += --ldflags '-extldflags "$(LDFLAGS)"' +endif + +.PHONY: default all $(NAME) go lint format install clean + +default: $(NAME) +all: format lint go $(NAME) + +$(NAME): + @mkdir -p $(BUILD_DIR) + go build $(GOFLAGS) -o $(BUILD_DIR)/$(NAME) $(CMD_DIR) + +# Makes sure go files build and tests pass +go: + go build $(GOFLAGS) -o /dev/null ./... + go test $(GOFLAGS) ./... + +lint: + @golint ./... || true + @go vet ./... + +format: + go fmt ./... + +install: + go install $(GOFLAGS) ./... + +clean: + rm -rf $(BUILD_DIR) |