mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-10 18:24:11 +01:00
6c38114cfc
a change to force an error if the passed in ENV var is not defined. If that had been there, the borkage wouldn't have been undetected. Changed to only put the main FW in the firmware dir, instead of BL and FW.
77 lines
2.4 KiB
Makefile
77 lines
2.4 KiB
Makefile
#
|
|
# Linux-specific packaging
|
|
#
|
|
|
|
define CP_DEB_FILES_TEMPLATE
|
|
.PHONY: $(2)/$(1)
|
|
$(2)/$(1): $(3)/$(1)
|
|
$(V1)cp -a $$< $$@
|
|
endef
|
|
|
|
# Update this number for every formal release. The Deb packaging system relies on this to know to update a
|
|
# package or not. Otherwise, the user has to uninstall first.
|
|
VERNUM := 0.1.0
|
|
VERSION_FULL := $(VERNUM)-$(PACKAGE_LBL)
|
|
|
|
FLIGHT_FW := coptercontrol revolution
|
|
|
|
DEB_BUILD_DIR := $(ROOT_DIR)/debian
|
|
|
|
SED_DATE_STRG = $(shell date -R)
|
|
SED_SCRIPT = s/<VERSION>/$(VERSION_FULL)/;s/<DATE>/$(SED_DATE_STRG)/
|
|
|
|
DEB_CFG_CMN := $(ROOT_DIR)/package/linux/deb_common
|
|
DEB_CFG_CMN_FILES := $(shell ls $(DEB_CFG_CMN))
|
|
DEB_CFG_I386_DIR := $(ROOT_DIR)/package/linux/deb_i386
|
|
DEB_CFG_I386_FILES := $(shell ls $(DEB_CFG_I386_DIR))
|
|
DEB_CFG_AMD64_DIR := $(ROOT_DIR)/package/linux/deb_amd64
|
|
DEB_CFG_AMD64_FILES := $(shell ls $(DEB_CFG_AMD64_DIR))
|
|
DEB_PLATFORM := amd64
|
|
DEB_MACHINE_DIR := $(DEB_CFG_AMD64_DIR)
|
|
DEB_MACHINE_FILES := $(DEB_CFG_AMD64_FILES)
|
|
MACHINE_TYPE := $(shell uname -m)
|
|
ifneq ($(MACHINE_TYPE), x86_64)
|
|
DEB_PLATFORM := i386
|
|
DEB_MACHINE_DIR := $(DEB_CFG_I386_DIR)
|
|
DEB_MACHINE_FILES := $(DEB_CFG_I386_FILES)
|
|
endif
|
|
ALL_DEB_FILES = $(foreach f, $(DEB_CFG_CMN_FILES), $(DEB_BUILD_DIR)/$(f))
|
|
ALL_DEB_FILES += $(foreach f, $(DEB_MACHINE_FILES), $(DEB_BUILD_DIR)/$(f))
|
|
|
|
DEB_PACKAGE_NAME := openpilot_$(VERSION_FULL)_$(DEB_PLATFORM)
|
|
|
|
linux_deb_package: deb_build gcs
|
|
@echo $@ starting
|
|
cd .. && dpkg-buildpackage -b
|
|
$(V1)mv $(ROOT_DIR)/../$(DEB_PACKAGE_NAME).deb $(BUILD_DIR)
|
|
$(V1)mv $(ROOT_DIR)/../$(DEB_PACKAGE_NAME).changes $(BUILD_DIR)
|
|
$(V1)rm -rf $(DEB_BUILD_DIR)
|
|
|
|
deb_build: | $(DEB_BUILD_DIR) $(ALL_DEB_FILES) $(BUILD_DIR)/build
|
|
@echo $@ starting
|
|
$(V1)$(shell echo $(FW_DIR) > $(BUILD_DIR)/package_dir)
|
|
$(V1)sed -i -e "$(SED_SCRIPT)" $(DEB_BUILD_DIR)/changelog
|
|
|
|
$(BUILD_DIR)/build: package_flight
|
|
|
|
$(DEB_BUILD_DIR):
|
|
@echo $@ starting
|
|
$(V1)mkdir -p $(DEB_BUILD_DIR)
|
|
|
|
$(foreach cpfile, $(DEB_CFG_CMN_FILES), $(eval $(call CP_DEB_FILES_TEMPLATE,$(cpfile),$(DEB_BUILD_DIR),$(DEB_CFG_CMN))))
|
|
|
|
$(foreach cpfile, $(DEB_MACHINE_FILES), $(eval $(call CP_DEB_FILES_TEMPLATE,$(cpfile),$(DEB_BUILD_DIR),$(DEB_MACHINE_DIR))))
|
|
|
|
gcs: uavobjects
|
|
@echo "Linux Package Make of GCS."
|
|
$(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@
|
|
|
|
identify:
|
|
@echo ""
|
|
@echo "We are in the Linux Package Make system."
|
|
@echo ""
|
|
|
|
ground_package: | identify linux_deb_package
|
|
|
|
.PHONY: identify gcs ground_package linux_deb_package deb_build $(DEB_BUILD_DIR)
|