f4d17450 |
#
# Copyright VMware, Inc 2015
#
|
060670a4 |
SRCROOT := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) |
f4d17450 |
MAKEROOT=$(SRCROOT)/support/make |
8bb8e36e |
# do not build these targets as '%'
$(MAKEROOT)/makedefs.mk: ;
Makefile: ;
|
f4d17450 |
include $(MAKEROOT)/makedefs.mk
|
a6c9285c |
export PATH := $(SRCROOT)/tools/bin:$(PATH) |
2c153d29 |
export PHOTON_BUILD_NUM=$(PHOTON_BUILD_NUMBER)
export PHOTON_RELEASE_VER=$(PHOTON_RELEASE_VERSION) |
a6c9285c |
|
f4d17450 |
ifdef PHOTON_CACHE_PATH |
5d05cfcc |
PHOTON_PACKAGES_MINIMAL := packages-cached |
f4d17450 |
PHOTON_PACKAGES := packages-cached
else |
5d05cfcc |
PHOTON_PACKAGES_MINIMAL := packages-minimal |
f4d17450 |
PHOTON_PACKAGES := packages
endif
ifdef PHOTON_SOURCES_PATH
PHOTON_SOURCES := sources-cached
else |
56ec252d |
PHOTON_SOURCES ?= sources |
f4d17450 |
endif
|
94cdb4d4 |
FULL_PACKAGE_LIST_FILE := build_install_options_all.json
|
0bba3e62 |
ifdef PHOTON_PUBLISH_RPMS_PATH
PHOTON_PUBLISH_RPMS := publish-rpms-cached
else
PHOTON_PUBLISH_RPMS := publish-rpms
endif
|
062d56d1 |
ifdef PHOTON_PUBLISH_XRPMS_PATH
PHOTON_PUBLISH_XRPMS := publish-x-rpms-cached
else
PHOTON_PUBLISH_XRPMS := publish-x-rpms
endif
|
b5e09fac |
# Tri state RPMCHECK:
# 1) RPMCHECK is not specified: just build
# 2) RPMCHECK=enable: build and run %check section. do not stop on error. will generate report file.
# 3) RPMCHECK=enable_stop_on_error: build and run %check section. stop on first error.
#
# We use 2 parameters:
# -u: enable checking.
# -q: quit on error. if -q is not specified it will keep going
ifeq ($(RPMCHECK),enable) |
9bc3518e |
PHOTON_RPMCHECK_FLAGS := --enable-rpmcheck |
b5e09fac |
else ifeq ($(RPMCHECK),enable_stop_on_error) |
9bc3518e |
PHOTON_RPMCHECK_FLAGS := --enable-rpmcheck --rpmcheck-stop-on-error |
f5001053 |
else |
b5e09fac |
PHOTON_RPMCHECK_FLAGS := |
f5001053 |
endif
|
343d89e8 |
# KAT build for FIPS certification
ifdef KAT_BUILD |
9bc3518e |
PHOTON_KAT_BUILD_FLAGS := --kat-build $(KAT_BUILD) |
343d89e8 |
endif
|
620867de |
ifeq ($(BUILDDEPS),true) |
9bc3518e |
PUBLISH_BUILD_DEPENDENCIES := --publish-build-dependencies True |
620867de |
else
PUBLISH_BUILD_DEPENDENCIES :=
endif
ifdef WEIGHTS |
aac331d9 |
PACKAGE_WEIGHTS = --package-weights-path $(SRCROOT)/common/data/packageWeights.json |
620867de |
else |
aac331d9 |
PACKAGE_WEIGHTS =
endif
ifdef PKG_BUILD_OPTIONS
PACKAGE_BUILD_OPTIONS = --pkg-build-option-file $(PKG_BUILD_OPTIONS)
else
PACKAGE_BUILD_OPTIONS = |
620867de |
endif
|
a6c9285c |
TOOLS_BIN := $(SRCROOT)/tools/bin
CONTAIN := $(TOOLS_BIN)/contain |
9dd420fe |
ifeq ($(ARCH),x86_64) |
e7eb736d |
VIXDISKUTIL := $(TOOLS_BIN)/vixdiskutil |
8ff5c437 |
IMGCONVERTER := $(TOOLS_BIN)/imgconverter |
9dd420fe |
else
VIXDISKUTIL :=
IMGCONVERTER :=
endif |
a6c9285c |
|
26b55679 |
$(TOOLS_BIN):
mkdir -p $(TOOLS_BIN) |
8bcb2fdd |
|
26b55679 |
$(CONTAIN): $(TOOLS_BIN)
gcc -O2 -std=gnu99 -Wall -Wextra $(SRCROOT)/tools/src/contain/*.c -o $@_unpriv
sudo install -o root -g root -m 4755 $@_unpriv $@ |
f4d17450 |
|
26b55679 |
$(VIXDISKUTIL): $(TOOLS_BIN)
@cd $(SRCROOT)/tools/src/vixDiskUtil && \
make |
66b3bc73 |
|
26b55679 |
$(IMGCONVERTER): $(TOOLS_BIN)
@cd $(SRCROOT)/tools/src/imgconverter && \
make |
5d05cfcc |
|
26b55679 |
.PHONY : all iso clean cloud-image \
check-tools check-docker check-bison check-g++ check-gawk check-repo-tool check-kpartx check-sanity \
clean-install clean-chroot build-updated-packages check generate-yaml-files |
5d05cfcc |
|
26b55679 |
THREADS?=1
LOGLEVEL?=info |
07751fba |
|
26b55679 |
# Build targets for rpm build
#------------------------------------------------------------------------------- |
b5e09fac |
packages-minimal: check-tools $(PHOTON_STAGE) $(PHOTON_PUBLISH_RPMS) $(PHOTON_SOURCES) generate-dep-lists |
26b55679 |
@echo "Building all minimal RPMS..."
@echo "" |
5d05cfcc |
@cd $(PHOTON_PKG_BUILDER_DIR) && \ |
aac331d9 |
$(PHOTON_PACKAGE_BUILDER) \
--spec-path $(PHOTON_SPECS_DIR) \
--rpm-path $(PHOTON_RPMS_DIR) \
--source-path $(PHOTON_SRCS_DIR) \
--build-root-path $(PHOTON_CHROOT_PATH) \
--packages-json-input $(PHOTON_DATA_DIR)/packages_minimal.json \
--log-path $(PHOTON_LOGS_DIR) \
--log-level $(LOGLEVEL) \
--publish-RPMS-path $(PHOTON_PUBLISH_RPMS_DIR) \
--pullsources-config $(PHOTON_PULLSOURCES_CONFIG) \
--dist-tag $(PHOTON_DIST_TAG) \
--build-number $(PHOTON_BUILD_NUMBER) \
--release-version $(PHOTON_RELEASE_VERSION) \
$(PHOTON_RPMCHECK_FLAGS) \ |
620867de |
$(PUBLISH_BUILD_DEPENDENCIES) \ |
aac331d9 |
$(PACKAGE_WEIGHTS) \
--threads ${THREADS} |
5d05cfcc |
|
3d135aa5 |
packages: check-docker-py check-tools $(PHOTON_STAGE) $(PHOTON_PUBLISH_XRPMS) $(PHOTON_PUBLISH_RPMS) $(PHOTON_SOURCES) $(CONTAIN) check-spec-files generate-dep-lists |
f4d17450 |
@echo "Building all RPMS..." |
26b55679 |
@echo "" |
f4d17450 |
@cd $(PHOTON_PKG_BUILDER_DIR) && \ |
aac331d9 |
$(PHOTON_PACKAGE_BUILDER) \
--build-type $(PHOTON_BUILD_TYPE) \
--spec-path $(PHOTON_SPECS_DIR) \
--rpm-path $(PHOTON_RPMS_DIR) \
--source-rpm-path $(PHOTON_SRPMS_DIR) \
--source-path $(PHOTON_SRCS_DIR) \
--build-root-path $(PHOTON_CHROOT_PATH) \
--log-path $(PHOTON_LOGS_DIR) \
--log-level $(LOGLEVEL) \
--publish-RPMS-path $(PHOTON_PUBLISH_RPMS_DIR) \
--publish-XRPMS-path $(PHOTON_PUBLISH_XRPMS_DIR) \
--pullsources-config $(PHOTON_PULLSOURCES_CONFIG) \
--dist-tag $(PHOTON_DIST_TAG) \
--build-number $(PHOTON_BUILD_NUMBER) \
--release-version $(PHOTON_RELEASE_VERSION) \
--pkginfo-file $(PHOTON_STAGE)/pkg_info.json \
$(PACKAGE_BUILD_OPTIONS) \
$(PHOTON_RPMCHECK_FLAGS) \
$(PHOTON_KAT_BUILD_FLAGS) \
$(PUBLISH_BUILD_DEPENDENCIES) \
$(PACKAGE_WEIGHTS) \
--threads ${THREADS} |
f4d17450 |
|
e359539f |
packages-docker: check-docker-py check-docker-service check-tools $(PHOTON_STAGE) $(PHOTON_PUBLISH_XRPMS) $(PHOTON_PUBLISH_RPMS) $(PHOTON_SOURCES) $(CONTAIN) generate-dep-lists
@echo "Building all RPMS..." |
26b55679 |
@echo "" |
e359539f |
@cd $(PHOTON_PKG_BUILDER_DIR) && \ |
aac331d9 |
$(PHOTON_PACKAGE_BUILDER) \
--build-type $(PHOTON_BUILD_TYPE) \
--spec-path $(PHOTON_SPECS_DIR) \
--rpm-path $(PHOTON_RPMS_DIR) \
--source-rpm-path $(PHOTON_SRPMS_DIR) \
--source-path $(PHOTON_SRCS_DIR) \
--build-root-path $(PHOTON_CHROOT_PATH) \
--log-path $(PHOTON_LOGS_DIR) \
--log-level $(LOGLEVEL) \
--publish-RPMS-path $(PHOTON_PUBLISH_RPMS_DIR) \
--publish-XRPMS-path $(PHOTON_PUBLISH_XRPMS_DIR) \
--pullsources-config $(PHOTON_PULLSOURCES_CONFIG) \
--dist-tag $(PHOTON_DIST_TAG) \
--build-number $(PHOTON_BUILD_NUMBER) \
--release-version $(PHOTON_RELEASE_VERSION) \
--pkginfo-file $(PHOTON_STAGE)/pkg_info.json \
$(PACKAGE_BUILD_OPTIONS) \
$(PHOTON_RPMCHECK_FLAGS) \
$(PUBLISH_BUILD_DEPENDENCIES) \
$(PACKAGE_WEIGHTS) \
--threads ${THREADS} |
e359539f |
|
062d56d1 |
updated-packages: check-tools $(PHOTON_STAGE) $(PHOTON_PUBLISH_XRPMS) $(PHOTON_PUBLISH_RPMS) $(PHOTON_SOURCES) $(CONTAIN) generate-dep-lists |
42ffccb5 |
@echo "Building only updated RPMS..." |
26b55679 |
@echo "" |
42ffccb5 |
@cd $(PHOTON_PKG_BUILDER_DIR) && \ |
aac331d9 |
$(PHOTON_PACKAGE_BUILDER) \
--spec-path $(PHOTON_SPECS_DIR) \
--rpm-path $(PHOTON_UPDATED_RPMS_DIR) \
--source-path $(PHOTON_SRCS_DIR) \
--build-root-path $(PHOTON_CHROOT_PATH) \
--log-path $(PHOTON_LOGS_DIR) \
--log-level $(LOGLEVEL) \
--publish-RPMS-path $(PHOTON_PUBLISH_RPMS_DIR) \
--publish-XRPMS-path $(PHOTON_PUBLISH_XRPMS_DIR) \
--pullsources-config $(PHOTON_PULLSOURCES_CONFIG) \
--dist-tag $(PHOTON_DIST_TAG) \
--build-number $(PHOTON_BUILD_NUMBER) \
--release-version $(PHOTON_RELEASE_VERSION) \
--input-RPMS-path $(PHOTON_INPUT_RPMS_DIR) \
$(PHOTON_KAT_BUILD_FLAGS) \
$(PHOTON_RPMCHECK_FLAGS) \
$(PUBLISH_BUILD_DEPENDENCIES) \
$(PACKAGE_WEIGHTS) \
--threads ${THREADS} |
42ffccb5 |
|
b5e09fac |
tool-chain-stage1: check-tools $(PHOTON_STAGE) $(PHOTON_PUBLISH_RPMS) $(PHOTON_SOURCES) $(CONTAIN) generate-dep-lists |
db36e75e |
@echo "Building all RPMS..." |
26b55679 |
@echo "" |
db36e75e |
@cd $(PHOTON_PKG_BUILDER_DIR) && \ |
aac331d9 |
$(PHOTON_PACKAGE_BUILDER) \
--spec-path $(PHOTON_SPECS_DIR) \
--rpm-path $(PHOTON_RPMS_DIR) \
--source-rpm-path $(PHOTON_SRPMS_DIR) \
--source-path $(PHOTON_SRCS_DIR) \
--build-root-path $(PHOTON_CHROOT_PATH) \
--log-path $(PHOTON_LOGS_DIR) \
--log-level $(LOGLEVEL) \
--publish-RPMS-path $(PHOTON_PUBLISH_RPMS_DIR) \
--threads ${THREADS} \
--pullsources-config $(PHOTON_PULLSOURCES_CONFIG) \
--dist-tag $(PHOTON_DIST_TAG) \
--build-number $(PHOTON_BUILD_NUMBER) \
--release-version $(PHOTON_RELEASE_VERSION) \
$(PHOTON_RPMCHECK_FLAGS) \
--tool-chain-stage stage1 |
db36e75e |
|
b5e09fac |
tool-chain-stage2: check-tools $(PHOTON_STAGE) $(PHOTON_PUBLISH_RPMS) $(PHOTON_SOURCES) $(CONTAIN) generate-dep-lists |
db36e75e |
@echo "Building all RPMS..." |
26b55679 |
@echo "" |
db36e75e |
@cd $(PHOTON_PKG_BUILDER_DIR) && \ |
aac331d9 |
$(PHOTON_PACKAGE_BUILDER) \
--spec-path $(PHOTON_SPECS_DIR) \
--rpm-path $(PHOTON_RPMS_DIR) \
--source-rpm-path $(PHOTON_SRPMS_DIR) \
--source-path $(PHOTON_SRCS_DIR) \
--build-root-path $(PHOTON_CHROOT_PATH) \
--log-path $(PHOTON_LOGS_DIR) \
--log-level $(LOGLEVEL) \
--publish-RPMS-path $(PHOTON_PUBLISH_RPMS_DIR) \
--threads ${THREADS} \
--pullsources-config $(PHOTON_PULLSOURCES_CONFIG) \
--dist-tag $(PHOTON_DIST_TAG) \
--build-number $(PHOTON_BUILD_NUMBER) \
--release-version $(PHOTON_RELEASE_VERSION) \
$(PHOTON_RPMCHECK_FLAGS) \
--tool-chain-stage stage2 |
db36e75e |
|
26b55679 |
%: check-tools $(PHOTON_PUBLISH_RPMS) $(PHOTON_PUBLISH_XRPMS) $(PHOTON_SOURCES) $(CONTAIN) check-spec-files $(eval PKG_NAME = $@)
$(eval PKG_NAME = $@)
@cd $(PHOTON_PKG_BUILDER_DIR) && \ |
aac331d9 |
$(PHOTON_PACKAGE_BUILDER) --install-package $(PKG_NAME)\
--build-type $(PHOTON_BUILD_TYPE) \
--build-root-path $(PHOTON_CHROOT_PATH) \
--spec-path $(PHOTON_SPECS_DIR) \
--rpm-path $(PHOTON_RPMS_DIR) \
--source-rpm-path $(PHOTON_SRPMS_DIR) \
--source-path $(PHOTON_SRCS_DIR) \
--publish-RPMS-path $(PHOTON_PUBLISH_RPMS_DIR) \
--publish-XRPMS-path $(PHOTON_PUBLISH_XRPMS_DIR) \
--pullsources-config $(PHOTON_PULLSOURCES_CONFIG) \
--log-level $(LOGLEVEL) \
--dist-tag $(PHOTON_DIST_TAG) \
--build-number $(PHOTON_BUILD_NUMBER) \
--release-version $(PHOTON_RELEASE_VERSION) \
$(PACKAGE_BUILD_OPTIONS) \
$(PHOTON_RPMCHECK_FLAGS) \
$(PHOTON_KAT_BUILD_FLAGS) \
--log-path $(PHOTON_LOGS_DIR) \
--threads ${THREADS} |
9bc3518e |
check: packages |
aac331d9 |
ifeq ($(RPMCHECK),enable_stop_on_error)
$(eval rpmcheck_stop_on_error = -q)
endif |
9bc3518e |
@echo "Testing all RPMS ..."
@cd $(PHOTON_PKG_BUILDER_DIR) && \ |
aac331d9 |
$(PHOTON_PACKAGE_BUILDER) \
--build-type $(PHOTON_BUILD_TYPE) \
--spec-path $(PHOTON_SPECS_DIR) \
--rpm-path $(PHOTON_RPMS_DIR) \
--source-rpm-path $(PHOTON_SRPMS_DIR) \
--source-path $(PHOTON_SRCS_DIR) \
--build-root-path $(PHOTON_CHROOT_PATH) \
--log-path $(PHOTON_LOGS_DIR) \
--log-level $(LOGLEVEL) \
--publish-RPMS-path $(PHOTON_PUBLISH_RPMS_DIR) \
--publish-XRPMS-path $(PHOTON_PUBLISH_XRPMS_DIR) \
--pullsources-config $(PHOTON_PULLSOURCES_CONFIG) \
--dist-tag $(PHOTON_DIST_TAG) \
--build-number $(PHOTON_BUILD_NUMBER) \
--release-version $(PHOTON_RELEASE_VERSION) \
--pkginfo-file $(PHOTON_STAGE)/pkg_info.json \
$(PACKAGE_BUILD_OPTIONS) \
--enable-rpmcheck \
$(rpmcheck_stop_on_error) \
--threads ${THREADS} |
9bc3518e |
|
26b55679 |
#-------------------------------------------------------------------------------
# The targets listed under "all" are the installer built artifacts
#===============================================================================
all: iso photon-docker-image k8s-docker-images cloud-image-all src-iso
iso: check-tools $(PHOTON_STAGE) $(PHOTON_PACKAGES)
@echo "Building Photon Full ISO..."
@cd $(PHOTON_INSTALLER_DIR) && \ |
aac331d9 |
sudo $(PHOTON_INSTALLER) \
--iso-path $(PHOTON_STAGE)/photon-$(PHOTON_RELEASE_VERSION)-$(PHOTON_BUILD_NUMBER).iso \
--debug-iso-path $(PHOTON_STAGE)/photon-$(PHOTON_RELEASE_VERSION)-$(PHOTON_BUILD_NUMBER).debug.iso \
--working-directory $(PHOTON_STAGE)/photon_iso \
--log-path $(PHOTON_STAGE)/LOGS \
--log-level $(LOGLEVEL) \
--rpm-path $(PHOTON_STAGE)/RPMS \
--srpm-path $(PHOTON_STAGE)/SRPMS \
--package-list-file $(PHOTON_GENERATED_DATA_DIR)/$(FULL_PACKAGE_LIST_FILE) \
--output-data-path $(PHOTON_STAGE)/common/data \
--pkg-to-rpm-map-file $(PHOTON_STAGE)/pkg_info.json \
--json-data-path $(PHOTON_DATA_DIR) \
--force > \
$(PHOTON_LOGS_DIR)/installer.log 2>&1 |
26b55679 |
src-iso: check-tools $(PHOTON_STAGE) $(PHOTON_PACKAGES)
@echo "Building Photon Full Source ISO..."
@cd $(PHOTON_INSTALLER_DIR) && \ |
aac331d9 |
sudo $(PHOTON_INSTALLER) \
--src-iso-path $(PHOTON_STAGE)/photon-$(PHOTON_RELEASE_VERSION)-$(PHOTON_BUILD_NUMBER).src.iso \
--working-directory $(PHOTON_STAGE)/photon_iso \
--log-path $(PHOTON_STAGE)/LOGS \
--log-level $(LOGLEVEL) \
--rpm-path $(PHOTON_STAGE)/RPMS \
--srpm-path $(PHOTON_STAGE)/SRPMS \
--package-list-file $(PHOTON_GENERATED_DATA_DIR)/$(FULL_PACKAGE_LIST_FILE) \
--output-data-path $(PHOTON_STAGE)/common/data \
--pkg-to-rpm-map-file $(PHOTON_STAGE)/pkg_info.json \
--json-data-path $(PHOTON_DATA_DIR) \
--force > \
$(PHOTON_LOGS_DIR)/sourceiso-installer.log 2>&1 |
26b55679 |
cloud-image: check-kpartx $(PHOTON_STAGE) $(VIXDISKUTIL) $(IMGCONVERTER) $(PHOTON_PACKAGES)
@echo "Building cloud image $(IMG_NAME)..."
@cd $(PHOTON_CLOUD_IMAGE_BUILDER_DIR)
$(PHOTON_CLOUD_IMAGE_BUILDER) $(PHOTON_CLOUD_IMAGE_BUILDER_DIR) $(IMG_NAME) $(SRCROOT) $(PHOTON_GENERATED_DATA_DIR) $(PHOTON_STAGE) $(ADDITIONAL_RPMS_PATH)
|
db36e75e |
|
26b55679 |
cloud-image-all: check-kpartx $(PHOTON_STAGE) $(VIXDISKUTIL) $(IMGCONVERTER) $(PHOTON_PACKAGES)
@echo "Building cloud images - gce, ami, azure and ova..."
@cd $(PHOTON_CLOUD_IMAGE_BUILDER_DIR)
$(PHOTON_CLOUD_IMAGE_BUILDER) $(PHOTON_CLOUD_IMAGE_BUILDER_DIR) gce $(SRCROOT) $(PHOTON_GENERATED_DATA_DIR) $(PHOTON_STAGE) $(ADDITIONAL_RPMS_PATH)
$(PHOTON_CLOUD_IMAGE_BUILDER) $(PHOTON_CLOUD_IMAGE_BUILDER_DIR) ami $(SRCROOT) $(PHOTON_GENERATED_DATA_DIR) $(PHOTON_STAGE) $(ADDITIONAL_RPMS_PATH)
$(PHOTON_CLOUD_IMAGE_BUILDER) $(PHOTON_CLOUD_IMAGE_BUILDER_DIR) azure $(SRCROOT) $(PHOTON_GENERATED_DATA_DIR) $(PHOTON_STAGE) $(ADDITIONAL_RPMS_PATH)
$(PHOTON_CLOUD_IMAGE_BUILDER) $(PHOTON_CLOUD_IMAGE_BUILDER_DIR) ova $(SRCROOT) $(PHOTON_GENERATED_DATA_DIR) $(PHOTON_STAGE) $(ADDITIONAL_RPMS_PATH)
$(PHOTON_CLOUD_IMAGE_BUILDER) $(PHOTON_CLOUD_IMAGE_BUILDER_DIR) ova_micro $(SRCROOT) $(PHOTON_GENERATED_DATA_DIR) $(PHOTON_STAGE) $(ADDITIONAL_RPMS_PATH)
photon-docker-image:
$(PHOTON_REPO_TOOL) $(PHOTON_RPMS_DIR)
sudo docker build --no-cache --tag photon-build ./support/dockerfiles/photon
sudo docker run \
--rm \
--privileged \
--net=host \
-e PHOTON_BUILD_NUMBER=$(PHOTON_BUILD_NUMBER) \
-e PHOTON_RELEASE_VERSION=$(PHOTON_RELEASE_VERSION) \
-v `pwd`:/workspace \
photon-build \
./support/dockerfiles/photon/make-docker-image.sh tdnf
k8s-docker-images: start-docker photon-docker-image
mkdir -p $(PHOTON_STAGE)/docker_images && \
cd ./support/dockerfiles/k8s-docker-images && \
./build-k8s-base-image.sh $(PHOTON_RELEASE_VERSION) $(PHOTON_BUILD_NUMBER) $(PHOTON_STAGE) && \
./build-k8s-docker-images.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
./build-k8s-metrics-server-image.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
./build-k8s-coredns-image.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
./build-k8s-dns-docker-images.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
./build-k8s-dashboard-docker-images.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
./build-flannel-docker-image.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
./build-calico-docker-images.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
./build-k8s-heapster-image.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
./build-k8s-nginx-ingress.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE) && \
./build-wavefront-proxy-docker-image.sh $(PHOTON_DIST_TAG) $(PHOTON_RELEASE_VERSION) $(PHOTON_SPECS_DIR) $(PHOTON_STAGE)
#===============================================================================
# Set up Build environment
#_______________________________________________________________________________ |
0bba3e62 |
packages-cached: |
f4d17450 |
@echo "Using cached RPMS..."
@$(RM) -f $(PHOTON_RPMS_DIR_NOARCH)/* && \ |
aac331d9 |
$(RM) -f $(PHOTON_RPMS_DIR_ARCH)/* && \
$(CP) -f $(PHOTON_CACHE_PATH)/RPMS/noarch/* $(PHOTON_RPMS_DIR_NOARCH)/ && \
$(CP) -f $(PHOTON_CACHE_PATH)/RPMS/$(ARCH)/* $(PHOTON_RPMS_DIR_ARCH)/ |
f4d17450 |
sources: |
9922bb69 |
@$(MKDIR) -p $(PHOTON_SRCS_DIR) |
f4d17450 |
|
9821c565 |
sources-cached: |
f4d17450 |
@echo "Using cached SOURCES..." |
7fbd3a1e |
@ln -sf $(PHOTON_SOURCES_PATH) $(PHOTON_SRCS_DIR) |
f4d17450 |
|
0bba3e62 |
publish-rpms: |
9bc3518e |
@echo "Pulling toolchain rpms..." |
0bba3e62 |
@cd $(PHOTON_PULL_PUBLISH_RPMS_DIR) && \
$(PHOTON_PULL_PUBLISH_RPMS) $(PHOTON_PUBLISH_RPMS_DIR)
|
062d56d1 |
publish-x-rpms: |
9bc3518e |
@echo "Pulling X toolchain rpms..." |
062d56d1 |
@cd $(PHOTON_PULL_PUBLISH_RPMS_DIR) && \
$(PHOTON_PULL_PUBLISH_X_RPMS) $(PHOTON_PUBLISH_XRPMS_DIR)
|
0bba3e62 |
publish-rpms-cached: |
9bc3518e |
@echo "Using cached toolchain rpms..." |
0f1fdc4b |
@$(MKDIR) -p $(PHOTON_PUBLISH_RPMS_DIR)/{$(ARCH),noarch} && \ |
f0bfcef4 |
cd $(PHOTON_PULL_PUBLISH_RPMS_DIR) && \ |
aac331d9 |
$(PHOTON_PULL_PUBLISH_RPMS) $(PHOTON_PUBLISH_RPMS_DIR) $(PHOTON_PUBLISH_RPMS_PATH) |
0bba3e62 |
|
062d56d1 |
publish-x-rpms-cached: |
9bc3518e |
@echo "Using cached X toolchain rpms..." |
0f1fdc4b |
@$(MKDIR) -p $(PHOTON_PUBLISH_XRPMS_DIR)/{$(ARCH),noarch} && \ |
f0bfcef4 |
cd $(PHOTON_PULL_PUBLISH_RPMS_DIR) && \ |
aac331d9 |
$(PHOTON_PULL_PUBLISH_X_RPMS) $(PHOTON_PUBLISH_XRPMS_DIR) $(PHOTON_PUBLISH_XRPMS_PATH) |
062d56d1 |
|
b596b7f0 |
$(PHOTON_STAGE): |
f4d17450 |
@echo "Creating staging folder..."
$(MKDIR) -p $(PHOTON_STAGE)
@echo "Creating chroot path..."
$(MKDIR) -p $(PHOTON_CHROOT_PATH)
@echo "Building RPMS folders..."
@test -d $(PHOTON_RPMS_DIR_NOARCH) || $(MKDIR) -p $(PHOTON_RPMS_DIR_NOARCH) |
0f1fdc4b |
@test -d $(PHOTON_RPMS_DIR_ARCH) || $(MKDIR) -p $(PHOTON_RPMS_DIR_ARCH) |
d2526915 |
@echo "Building SRPMS folders..."
@test -d $(PHOTON_SRPMS_DIR) || $(MKDIR) -p $(PHOTON_SRPMS_DIR) |
83a89199 |
@echo "Building UPDATED_RPMS folders..."
@test -d $(PHOTON_UPDATED_RPMS_DIR_NOARCH) || $(MKDIR) -p $(PHOTON_UPDATED_RPMS_DIR_NOARCH) |
0f1fdc4b |
@test -d $(PHOTON_UPDATED_RPMS_DIR_ARCH) || $(MKDIR) -p $(PHOTON_UPDATED_RPMS_DIR_ARCH) |
f4d17450 |
@echo "Building SOURCES folder..."
@test -d $(PHOTON_SRCS_DIR) || $(MKDIR) -p $(PHOTON_SRCS_DIR)
@echo "Building LOGS folder..."
@test -d $(PHOTON_LOGS_DIR) || $(MKDIR) -p $(PHOTON_LOGS_DIR) |
65b7c387 |
@echo "Creating COPYING file..."
install -m 444 $(SRCROOT)/COPYING $(PHOTON_STAGE)/COPYING |
7acc3889 |
@echo "Creating open_source_license.txt file..."
install -m 444 $(SRCROOT)/installer/open_source_license.txt $(PHOTON_STAGE)/open_source_license.txt |
ba21ea11 |
@echo "Creating NOTICE file..."
install -m 444 $(SRCROOT)/NOTICE $(PHOTON_STAGE)/NOTICE |
26b55679 |
#_______________________________________________________________________________ |
65b7c387 |
|
26b55679 |
# Clean build environment
#================================================================== |
f4d17450 |
clean: clean-install clean-chroot
@echo "Deleting Photon ISO..." |
2c153d29 |
@$(RM) -f $(PHOTON_STAGE)/photon-*.iso |
f4d17450 |
@echo "Deleting stage dir..."
@$(RMDIR) $(PHOTON_STAGE)
@echo "Deleting chroot path..."
@$(RMDIR) $(PHOTON_CHROOT_PATH) |
a6c9285c |
@echo "Deleting tools/bin..."
@$(RMDIR) $(TOOLS_BIN) |
f4d17450 |
clean-install:
@echo "Cleaning installer working directory..."
@if [ -d $(PHOTON_STAGE)/photon_iso ]; then \ |
a8025533 |
$(PHOTON_CHROOT_CLEANER) $(PHOTON_STAGE)/photon_iso; \ |
f4d17450 |
fi
clean-chroot:
@echo "Cleaning chroot path..."
@if [ -d $(PHOTON_CHROOT_PATH) ]; then \
$(PHOTON_CHROOT_CLEANER) $(PHOTON_CHROOT_PATH); \
fi
|
26b55679 |
#================================================================== |
fc9f6700 |
|
26b55679 |
# Targets to check for tools support in build environment
#__________________________________________________________________________________ |
3533157b |
check-tools: check-bison check-g++ check-gawk check-repo-tool check-texinfo check-sanity check-docker |
07751fba |
check-docker:
@command -v docker >/dev/null 2>&1 || { echo "Package docker not installed. Aborting." >&2; exit 1; } |
f4d17450 |
|
e359539f |
check-docker-service:
@docker ps >/dev/null 2>&1 || { echo "Docker service is not running. Aborting." >&2; exit 1; }
|
7418d2bf |
check-docker-py: |
8f56b626 |
@python3 -c "import docker; assert docker.__version__ >= '$(PHOTON_DOCKER_PY_VER)'" >/dev/null 2>&1 || { echo "Error: Python3 package docker-py3 $(PHOTON_DOCKER_PY_VER) not installed.\nPlease use: pip3 install docker==$(PHOTON_DOCKER_PY_VER)" >&2; exit 1; } |
7418d2bf |
|
f4d17450 |
check-bison:
@command -v bison >/dev/null 2>&1 || { echo "Package bison not installed. Aborting." >&2; exit 1; } |
6c85c764 |
check-texinfo:
@command -v makeinfo >/dev/null 2>&1 || { echo "Package texinfo not installed. Aborting." >&2; exit 1; } |
f4d17450 |
check-g++:
@command -v g++ >/dev/null 2>&1 || { echo "Package g++ not installed. Aborting." >&2; exit 1; }
check-gawk:
@command -v gawk >/dev/null 2>&1 || { echo "Package gawk not installed. Aborting." >&2; exit 1; }
|
3533157b |
check-repo-tool:
@command -v $(PHOTON_REPO_TOOL) >/dev/null 2>&1 || { echo "Package $(PHOTON_REPO_TOOL) not installed. Aborting." >&2; exit 1; } |
f4d17450 |
|
8ff5c437 |
check-kpartx:
@command -v kpartx >/dev/null 2>&1 || { echo "Package kpartx not installed. Aborting." >&2; exit 1; }
|
4d6a578d |
check-sanity: |
26b55679 |
@$(SRCROOT)/support/sanity_check.sh
@echo "" |
9821c565 |
|
26b55679 |
start-docker: check-docker
systemctl start docker |
f4d17450 |
|
26b55679 |
install-photon-docker-image: photon-docker-image
sudo docker build -t photon:tdnf .
#__________________________________________________________________________________ |
ab168615 |
|
26b55679 |
# Spec file checker and utilities
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
check-spec-files:
@echo ""
@./tools/scripts/check_spec_files.sh $(BASE_COMMIT)
generate-dep-lists:
@echo ""
@$(RMDIR) $(PHOTON_GENERATED_DATA_DIR)
@$(MKDIR) -p $(PHOTON_GENERATED_DATA_DIR)
@cd $(PHOTON_SPECDEPS_DIR) && \
$(PHOTON_SPECDEPS) \ |
9bc3518e |
--spec-path $(PHOTON_SPECS_DIR) \
--stage-dir $(PHOTON_STAGE) \
--log-path $(PHOTON_LOGS_DIR) \
--log-level $(LOGLEVEL) \
--pkg $(PHOTON_GENERATED_DATA_DIR) \ |
26b55679 |
--input-type=json \
--file "$$(ls $(PHOTON_DATA_DIR)/build_install_options*.json)" \ |
9bc3518e |
--display-option json \
--input-data-dir $(PHOTON_DATA_DIR) |
26b55679 |
@echo ""
pkgtree:
@cd $(PHOTON_SPECDEPS_DIR) && \ |
9bc3518e |
$(PHOTON_SPECDEPS) \ |
aac331d9 |
--spec-path $(PHOTON_SPECS_DIR) \
--log-level $(LOGLEVEL) \
--input-type pkg \
--pkg $(pkg) |
26b55679 |
imgtree:
@cd $(PHOTON_SPECDEPS_DIR) && \ |
9bc3518e |
$(PHOTON_SPECDEPS) \ |
aac331d9 |
--spec-path $(PHOTON_SPECS_DIR) \
--log-level $(LOGLEVEL) \
--input-type json \
--file $(PHOTON_DATA_DIR)/build_install_options_$(img).json |
26b55679 |
who-needs:
@cd $(PHOTON_SPECDEPS_DIR) && \ |
9bc3518e |
$(PHOTON_SPECDEPS) \ |
aac331d9 |
--spec-path $(PHOTON_SPECS_DIR) \
--log-level $(LOGLEVEL) \
--input-type who-needs \
--pkg $(pkg) |
26b55679 |
print-upward-deps:
@cd $(PHOTON_SPECDEPS_DIR) && \ |
9bc3518e |
$(PHOTON_SPECDEPS) \ |
aac331d9 |
--spec-path $(PHOTON_SPECS_DIR) \
--input-type print-upward-deps \
--pkg $(pkg) |
26b55679 |
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
a6c9285c |
|
fc8abdd1 |
generate-yaml-files: check-tools $(PHOTON_STAGE) $(PHOTON_PACKAGES) |
a4676edd |
@echo "Generating yaml files for packages ..."
@cd $(PHOTON_PKG_BUILDER_DIR) && \ |
aac331d9 |
$(PHOTON_GENERATE_OSS_FILES) --generate-yaml-files \
--spec-path $(PHOTON_SPECS_DIR) \
--source-rpm-path $(PHOTON_SRPMS_DIR) \
--log-path $(PHOTON_LOGS_DIR) \
--dist-tag $(PHOTON_DIST_TAG) \
--log-level $(LOGLEVEL) \
--pullsources-config $(PHOTON_PULLSOURCES_CONFIG) \
--pkg-blacklist-file $(PHOTON_PKG_BLACKLIST_FILE) |
a4676edd |
|
26b55679 |
# Input args: BASE_COMMIT= (optional)
#
# This target removes staged RPMS that can be affected by change(s) and should
# be rebuilt as part of incremental build support
# For every spec file touched - remove all upward dependent packages (rpms)
# If support folder was touched - do full build
#
# The analyzed changes are:
# - commits from BASE_COMMIT to HEAD (if BASE_COMMIT= parameter is specified)
# - local changes (if no commits specified)
clean-stage-for-incremental-build: |
9bc3518e |
@test -n "$$(git diff --name-only $(BASE_COMMIT) @ | grep SPECS)" && $(PHOTON_SPECDEPS) --spec-path $(PHOTON_SPECS_DIR) -i remove-upward-deps -p $$(echo `git diff --name-only $(BASE_COMMIT) @ | grep .spec | xargs -n1 basename 2>/dev/null` | tr ' ' :) ||: |
aac331d9 |
@test -n "$$(git diff --name-only @~1 @ | grep '^support')" && { echo "Remove all staged RPMs"; $(RM) -rf $(PHOTON_RPMS_DIR); } ||: |
e7eb736d |
|