sigs.k8s.io/cluster-api-provider-aws@v1.5.5/docs/book/Makefile (about)

     1  # Copyright 2020 The Kubernetes Authors.
     2  #
     3  # Licensed under the Apache License, Version 2.0 (the "License");
     4  # you may not use this file except in compliance with the License.
     5  # You may obtain a copy of the License at
     6  #
     7  #     http://www.apache.org/licenses/LICENSE-2.0
     8  #
     9  # Unless required by applicable law or agreed to in writing, software
    10  # distributed under the License is distributed on an "AS IS" BASIS,
    11  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  # See the License for the specific language governing permissions and
    13  # limitations under the License.
    14  
    15  ROOT_DIR_RELATIVE := ../..
    16  include $(ROOT_DIR_RELATIVE)/common.mk
    17  
    18  # Directories.
    19  MDBOOK := $(TOOLS_BIN_DIR)/mdbook
    20  MDBOOK_EMBED := $(TOOLS_BIN_DIR)/mdbook-embed
    21  MDBOOK_RELEASELINK := $(TOOLS_BIN_DIR)/mdbook-releaselink
    22  MDBOOK_TABULATE := $(TOOLS_BIN_DIR)/mdbook-tabulate
    23  GENCRDAPIREFERENCEDOCS := $(TOOLS_BIN_DIR)/gen-crd-api-reference-docs
    24  GENCRDAPIREFERENCEDOCS_SRCS := $(call rwildcard,.,gen-crd-api-reference-docs/*.*)
    25  CRD_DOCS := src/crd/cluster-api-aws.md src/crd/experimental.md src/crd/eks-control-plane.md
    26  BOOK_SRCS :=  $(filter-out $(CRD_DOCS), $(call rwildcard,.,*.*))
    27  
    28  API_DIRS := cmd/clusterawsadm/api/bootstrap/v1beta1 api/v1beta1 exp/api/v1beta1 controlplane/eks/api/v1beta1 bootstrap/eks/api/v1beta1 iam/api/v1beta1
    29  API_SRCS := $(foreach dir, $(API_DIRS), $(call rwildcard,../../$(dir),*.go))
    30  GENERATED_SRCS := $(foreach dir, $(API_DIRS),../../$(dir)/zz_generated.deepcopy.go ../../$(dir)/zz_generated.conversion.go ../../$(dir)/zz_generated.defaults.go)
    31  API_FILTERED_SRCS := $(filter-out $(GENERATED_SRCS), $(API_SRCS))
    32  
    33  OS := $(shell go env GOOS)
    34  ARCH := $(shell go env GOARCH)
    35  PATH := $(abspath $(TOOLS_BIN_DIR)):$(PATH)
    36  export PATH
    37  
    38  src/crd:
    39  	mkdir -p src/crd
    40  
    41  src/crd/index.md: $(API_FILTERED_SRCS) src/crd
    42  	$(MAKE) gen_crd_docs API_DIR="$(shell go list -m)" OUT_FILE=$@
    43  
    44  .PHONY: gen_crd_docs
    45  gen_crd_docs: $(GENCRDAPIREFERENCEDOCS) src/crd $(GENCRDAPIREFERENCEDOCS_SRCS)
    46  	$(GENCRDAPIREFERENCEDOCS) -template-dir gen-crd-api-reference-docs/template -config "gen-crd-api-reference-docs/config.json" \
    47  		-api-dir $(API_DIR) \
    48  		-out-file $(OUT_FILE)
    49  
    50  src/clusterawsadm:
    51  	mkdir -p src/clusterawsadm
    52  
    53  terraform/out:
    54  	mkdir -p terraform/out
    55  
    56  terraform/out/amilist: terraform/out
    57  	CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o $@ ./cmd/amilist && chmod 755 $@
    58  
    59  .PHONY: generate
    60  generate: ## Generate any dependent files outside of a build
    61  	$(MAKE) -C ../ diagrams
    62  
    63  .PHONY: release-policies
    64  release-policies:
    65  	$(MAKE) -C ../.. release-policies
    66  
    67  src/SUMMARY_CLUSTERAWSADM.md: src/clusterawsadm $(CLUSTERAWSADMCMDREF_SRCS)
    68  	go run ./cmd/clusterawsadmdocs > src/SUMMARY_CLUSTERAWSADM.md
    69  
    70  # SUMMARY.md doesn't support processor statements, so construct it using cat
    71  src/SUMMARY.md: src/SUMMARY_PREFIX.md src/SUMMARY_SUFFIX.md src/SUMMARY_CLUSTERAWSADM.md
    72  	cat src/SUMMARY_PREFIX.md > src/SUMMARY.md
    73  	cat src/SUMMARY_CLUSTERAWSADM.md >> src/SUMMARY.md
    74  	cat src/SUMMARY_SUFFIX.md >> src/SUMMARY.md
    75  
    76  verify: generate ## Verify that dependent artifacts are up to date
    77  	@if !(git diff --quiet HEAD); then \
    78  		git diff; \
    79  		echo "generated files are out of date, run make generate"; exit 1; \
    80  	fi
    81  
    82  BOOK_DEPS := $(BOOK_SRCS) $(MDBOOK) $(MDBOOK_EMBED) $(MDBOOK_RELEASELINK) $(MDBOOK_TABULATE) release-policies src/SUMMARY.md src/crd/index.md
    83  
    84  .PHONY: build
    85  build: $(BOOK_DEPS) ## Build the book
    86  	$(MDBOOK) build
    87  
    88  .PHONY: serve
    89  serve: $(BOOK_DEPS) ## Run a local webserver with the compiled book
    90  	$(MDBOOK) serve
    91  
    92  .PHONY: clean
    93  clean:
    94  	rm -rf book