Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
a8669799
Commit
a8669799
authored
Jul 27, 2016
by
xiangpengzhao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add "make help" to list all make targets and help info
parent
81177226
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
250 additions
and
2 deletions
+250
-2
Makefile
Makefile
+167
-2
make-help.sh
hack/make-rules/make-help.sh
+83
-0
No files found.
Makefile
View file @
a8669799
...
...
@@ -56,6 +56,7 @@ KUBE_GOGCFLAGS = $(GOGCFLAGS)
# This controls the verbosity of the build. Higher numbers mean more output.
KUBE_VERBOSE
?=
1
define
ALL_HELP_INFO
# Build code.
#
# Args:
...
...
@@ -74,18 +75,32 @@ KUBE_VERBOSE ?= 1
# Note: Use the -N -l options to disable compiler optimizations an inlining.
# Using these build options allows you to subsequently use source
# debugging tools like delve.
endef
.PHONY
:
all
ifeq
($(PRINT_HELP),y)
all
:
@
echo
"
$$
ALL_HELP_INFO"
else
all
:
generated_files
hack/make-rules/build.sh
$(WHAT)
endif
define
GINKGO_HELP_INFO
# Build ginkgo
#
# Example:
# make ginkgo
endef
.PHONY
:
ginkgo
ifeq
($(PRINT_HELP),y)
ginkgo
:
@
echo
"
$$
GINKGO_HELP_INFO"
else
ginkgo
:
hack/make-rules/build.sh vendor/github.com/onsi/ginkgo/ginkgo
endif
define
VERIFY_HELP_INFO
# Runs all the presubmission verifications.
#
# Args:
...
...
@@ -94,19 +109,33 @@ ginkgo:
# Example:
# make verify
# make verify BRANCH=branch_x
endef
.PHONY
:
verify
ifeq
($(PRINT_HELP),y)
verify
:
@
echo
"
$$
VERIFY_HELP_INFO"
else
verify
:
verify_generated_files
KUBE_VERIFY_GIT_BRANCH
=
$(BRANCH)
hack/make-rules/verify.sh
-v
hack/make-rules/vet.sh
endif
define
UPDATE_HELP_INFO
# Runs all the generated updates.
#
# Example:
# make update
endef
.PHONY
:
update
ifeq
($(PRINT_HELP),y)
update
:
@
echo
"
$$
UPDATE_HELP_INFO"
else
update
:
hack/update-all.sh
endif
define
CHECK_TEST_HELP_INFO
# Build and run tests.
#
# Args:
...
...
@@ -121,10 +150,17 @@ update:
# make check
# make test
# make check WHAT=pkg/kubelet GOFLAGS=-v
endef
.PHONY
:
check test
ifeq
($(PRINT_HELP),y)
check test
:
@
echo
"
$$
CHECK_TEST_HELP_INFO"
else
check test
:
generated_files
hack/make-rules/test.sh
$(WHAT)
$(TESTS)
endif
define
TEST_IT_HELP_INFO
# Build and run integration tests.
#
# Args:
...
...
@@ -133,18 +169,32 @@ check test: generated_files
#
# Example:
# make test-integration
endef
.PHONY
:
test-integration
ifeq
($(PRINT_HELP),y)
test-integration
:
@
echo
"
$$
TEST_IT_HELP_INFO"
else
test-integration
:
generated_files
hack/make-rules/test-integration.sh
$(WHAT)
endif
define
TEST_E2E_HELP_INFO
# Build and run end-to-end tests.
#
# Example:
# make test-e2e
endef
.PHONY
:
test-e2e
ifeq
($(PRINT_HELP),y)
test-e2e
:
@
echo
"
$$
TEST_E2E_HELP_INFO"
else
test-e2e
:
ginkgo generated_files
go run hack/e2e.go
-v
--build
--up
--test
--down
endif
define
TEST_E2E_NODE_HELP_INFO
# Build and run node end-to-end tests.
#
# Args:
...
...
@@ -183,48 +233,83 @@ test-e2e: ginkgo generated_files
# make test-e2e-node REMOTE=true DELETE_INSTANCES=true
# make test-e2e-node TEST_ARGS="--experimental-cgroups-per-qos=true"
# Build and run tests.
endef
.PHONY
:
test-e2e-node
ifeq
($(PRINT_HELP),y)
test-e2e-node
:
@
echo
"
$$
TEST_E2E_NODE_HELP_INFO"
else
test-e2e-node
:
ginkgo generated_files
hack/make-rules/test-e2e-node.sh
endif
define
TEST_CMD_HELP_INFO
# Build and run cmdline tests.
#
# Example:
# make test-cmd
endef
.PHONY
:
test-cmd
ifeq
($(PRINT_HELP),y)
test-cmd
:
@
echo
"
$$
TEST_CMD_HELP_INFO"
else
test-cmd
:
generated_files
hack/make-rules/test-kubeadm-cmd.sh
hack/make-rules/test-cmd.sh
endif
define
CLEAN_HELP_INFO
# Remove all build artifacts.
#
# Example:
# make clean
#
# TODO(thockin): call clean_generated when we stop committing generated code.
endef
.PHONY
:
clean
ifeq
($(PRINT_HELP),y)
clean
:
@
echo
"
$$
CLEAN_HELP_INFO"
else
clean
:
clean_meta
build-tools/make-clean.sh
rm
-rf
$(OUT_DIR)
rm
-rf
Godeps/_workspace
# Just until we are sure it is gone
endif
define
CLEAN_META_HELP_INFO
# Remove make-related metadata files.
#
# Example:
# make clean_meta
endef
.PHONY
:
clean_meta
ifeq
($(PRINT_HELP),y)
clean_meta
:
@
echo
"
$$
CLEAN_META_HELP_INFO"
else
clean_meta
:
rm
-rf
$(META_DIR)
endif
define
CLEAN_GENERATED_HELP_INFO
# Remove all auto-generated artifacts. Generated artifacts in staging folder should not be removed as they are not
# generated using generated_files.
#
# Example:
# make clean_generated
endef
.PHONY
:
clean_generated
ifeq
($(PRINT_HELP),y)
clean_generated
:
@
echo
"
$$
CLEAN_GENERATED_HELP_INFO"
else
clean_generated
:
find
.
-type
f
-name
$(GENERATED_FILE_PREFIX)
\*
|
grep
-v
"[.]/staging/.*"
| xargs
rm
-f
endif
define
VET_HELP_INFO
# Run 'go vet'.
#
# Args:
...
...
@@ -235,70 +320,150 @@ clean_generated:
# Example:
# make vet
# make vet WHAT=pkg/kubelet
endef
.PHONY
:
vet
ifeq
($(PRINT_HELP),y)
vet
:
@
echo
"
$$
VET_HELP_INFO"
else
vet
:
hack/make-rules/vet.sh
$(WHAT)
endif
define
RELEASE_HELP_INFO
# Build a release
#
# Example:
# make release
endef
.PHONY
:
release
ifeq
($(PRINT_HELP),y)
release
:
@
echo
"
$$
RELEASE_HELP_INFO"
else
release
:
build-tools/release.sh
endif
define
RELEASE_SKIP_TESTS_HELP_INFO
# Build a release, but skip tests
#
# Example:
# make release-skip-tests
endef
.PHONY
:
release-skip-tests quick-release
ifeq
($(PRINT_HELP),y)
release-skip-tests quick-release
:
@
echo
"
$$
RELEASE_SKIP_TESTS_HELP_INFO"
else
release-skip-tests quick-release
:
KUBE_RELEASE_RUN_TESTS
=
n
KUBE_FASTBUILD
=
true
build-tools/release.sh
endif
define
CROSS_HELP_INFO
# Cross-compile for all platforms
#
# Example:
# make cross
endef
.PHONY
:
cross
ifeq
($(PRINT_HELP),y)
cross
:
@
echo
"
$$
CROSS_HELP_INFO"
else
cross
:
hack/make-rules/cross.sh
endif
define
CMD_HELP_INFO
# Add rules for all directories in cmd/
#
# Example:
# make kubectl kube-proxy
.PHONY
:
$(notdir $(abspath $(wildcard cmd/*/)))
$(notdir $(abspath $(wildcard cmd/*/)))
:
generated_files
endef
#TODO: make EXCLUDE_TARGET auto-generated when there are other files in cmd/
#TODO: should we exclude the target "libs" but include "cmd/libs/go2idl/*"?
EXCLUDE_TARGET
=
OWNERS
.PHONY
:
$(filter-out %$(EXCLUDE_TARGET)
,
$(notdir $(abspath $(wildcard cmd/*/))))
ifeq
($(PRINT_HELP),y)
$(filter-out %$(EXCLUDE_TARGET),$(notdir $(abspath $(wildcard cmd/*/))))
:
@
echo
"
$$
CMD_HELP_INFO"
else
$(filter-out %$(EXCLUDE_TARGET),$(notdir $(abspath $(wildcard cmd/*/))))
:
generated_files
hack/make-rules/build.sh cmd/
$@
endif
define
PLUGIN_CMD_HELP_INFO
# Add rules for all directories in plugin/cmd/
#
# Example:
# make kube-scheduler
endef
.PHONY
:
$(notdir $(abspath $(wildcard plugin/cmd/*/)))
ifeq
($(PRINT_HELP),y)
$(notdir $(abspath $(wildcard plugin/cmd/*/)))
:
@
echo
"
$$
PLUGIN_CMD_HELP_INFO"
else
$(notdir $(abspath $(wildcard plugin/cmd/*/)))
:
generated_files
hack/make-rules/build.sh plugin/cmd/
$@
endif
define
FED_CMD_HELP_INFO
# Add rules for all directories in federation/cmd/
#
# Example:
# make federation-apiserver federation-controller-manager
endef
.PHONY
:
$(notdir $(abspath $(wildcard federation/cmd/*/)))
ifeq
($(PRINT_HELP),y)
$(notdir $(abspath $(wildcard federation/cmd/*/)))
:
@
echo
"
$$
FED_CMD_HELP_INFO"
else
$(notdir $(abspath $(wildcard federation/cmd/*/)))
:
generated_files
hack/make-rules/build.sh federation/cmd/
$@
endif
define
GENERATED_FILES_HELP_INFO
# Produce auto-generated files needed for the build.
#
# Example:
# make generated_files
endef
.PHONY
:
generated_files
ifeq
($(PRINT_HELP),y)
generated_files
:
@
echo
"
$$
GENERATED_FILES_HELP_INFO"
else
generated_files
:
$(MAKE)
-f
Makefile.generated_files
$@
CALLED_FROM_MAIN_MAKEFILE
=
1
endif
define
VERIFY_GENERATED_FILES_HELP_INFO
# Verify auto-generated files needed for the build.
#
# Example:
# make verify_generated_files
endef
.PHONY
:
verify_generated_files
ifeq
($(PRINT_HELP),y)
verify_generated_files
:
@
echo
"
$$
VERIFY_GENERATED_FILES_HELP_INFO"
else
verify_generated_files
:
$(MAKE)
-f
Makefile.generated_files
$@
CALLED_FROM_MAIN_MAKEFILE
=
1
endif
define
HELP_INFO
# Print make targets and help info
#
# Example:
# make help
endef
.PHONY
:
help
ifeq
($(PRINT_HELP),y)
help
:
@
echo
"
$$
HELP_INFO"
else
help
:
hack/make-rules/make-help.sh
endif
hack/make-rules/make-help.sh
0 → 100755
View file @
a8669799
#!/bin/bash
# Copyright 2016 The Kubernetes Authors.
#
# 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.
set
-o
errexit
set
-o
nounset
set
-o
pipefail
red
=
'\E[1;31m'
reset
=
'\E[0m'
KUBE_ROOT
=
$(
dirname
"
${
BASH_SOURCE
}
"
)
/../..
ALL_TARGETS
=
$(
make
-C
"
${
KUBE_ROOT
}
"
PRINT_HELP
=
y
-rpn
|
sed
-n
-e
'/^$/ { n ; /^[^ .#][^ ]*:/ { s/:.*$// ; p ; } ; }'
|
sort
)
CMD_TARGETS
=
$(
ls
-l
"
${
KUBE_ROOT
}
/cmd"
|awk
'/^d/ {print $NF}'
)
PLUGIN_CMD_TARGETS
=
$(
ls
-l
"
${
KUBE_ROOT
}
/plugin/cmd"
|awk
'/^d/ {print $NF}'
)
FED_CMD_TARGETS
=
$(
ls
-l
"
${
KUBE_ROOT
}
/federation/cmd"
|awk
'/^d/ {print $NF}'
)
CMD_FLAG
=
false
PLUGIN_CMD_FLAG
=
false
FED_CMD_FLAG
=
false
echo
"--------------------------------------------------------------------------------"
for
tar
in
$ALL_TARGETS
;
do
for
cmdtar
in
$CMD_TARGETS
;
do
if
[
$tar
=
$cmdtar
]
;
then
if
[
$CMD_FLAG
=
true
]
;
then
continue
2
;
fi
echo
-e
"
${
red
}${
CMD_TARGETS
}${
reset
}
"
make
-C
"
${
KUBE_ROOT
}
"
$tar
PRINT_HELP
=
y
echo
"---------------------------------------------------------------------------------"
CMD_FLAG
=
true
continue
2
fi
done
for
plugincmdtar
in
$PLUGIN_CMD_TARGETS
;
do
if
[
$tar
=
$plugincmdtar
]
;
then
if
[
$PLUGIN_CMD_FLAG
=
true
]
;
then
continue
2
;
fi
echo
-e
"
${
red
}${
PLUGIN_CMD_TARGETS
}${
reset
}
"
make
-C
"
${
KUBE_ROOT
}
"
$tar
PRINT_HELP
=
y
echo
"---------------------------------------------------------------------------------"
PLUGIN_CMD_FLAG
=
true
continue
2
fi
done
for
fedcmdtar
in
$FED_CMD_TARGETS
;
do
if
[
$tar
=
$fedcmdtar
]
;
then
if
[
$FED_CMD_FLAG
=
true
]
;
then
continue
2
;
fi
echo
-e
"
${
red
}${
FED_CMD_TARGETS
}${
reset
}
"
make
-C
"
${
KUBE_ROOT
}
"
$tar
PRINT_HELP
=
y
echo
"---------------------------------------------------------------------------------"
FED_CMD_FLAG
=
true
continue
2
fi
done
echo
-e
"
${
red
}${
tar
}${
reset
}
"
make
-C
"
${
KUBE_ROOT
}
"
$tar
PRINT_HELP
=
y
echo
"---------------------------------------------------------------------------------"
done
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment