# # 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_FULL)/;s//$(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 -us -uc $(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)