# # Linux-specific packaging # # 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. # Until we do that, package name does NOT include $(VERNUM) and uses $(PACKAGE_LBL) only VERNUM := 0.1.0 VERSION_FULL := $(VERNUM)-$(PACKAGE_LBL) DEB_BUILD_DIR := $(ROOT_DIR)/debian SED_DATE_STRG = $(shell date -R) SED_SCRIPT = s//$(PACKAGE_LBL)/;s//$(SED_DATE_STRG)/ DEB_CFG_CMN := $(ROOT_DIR)/package/linux/deb_common DEB_CFG_I386_DIR := $(ROOT_DIR)/package/linux/deb_i386 DEB_CFG_AMD64_DIR := $(ROOT_DIR)/package/linux/deb_amd64 DEB_CFG_CMN_FILES := $(shell ls $(DEB_CFG_CMN)) DEB_CFG_I386_FILES := $(shell ls $(DEB_CFG_I386_DIR)) 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 DEB_PACKAGE_NAME := openpilot_$(PACKAGE_LBL)_$(DEB_PLATFORM) 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)) linux_deb_package: $(ALL_DEB_FILES) gcs package_flight $(V1) echo "Building Linux package, please wait..." $(V1) mkdir -p $(DEB_BUILD_DIR) $(V1) $(shell echo $(FW_DIR) > $(BUILD_DIR)/package_dir) $(V1) sed -i -e "$(SED_SCRIPT)" $(DEB_BUILD_DIR)/changelog $(V1) 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) $(ALL_DEB_FILES): | uavobjects define CP_DEB_FILES_TEMPLATE .PHONY: $(2)/$(1) $(2)/$(1): $(3)/$(1) $(V1) mkdir -p $(2) $(V1) cp -a $$< $$@ endef $(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 $(V1) $(MAKE) -C $(ROOT_DIR) GCS_BUILD_CONF=release $@ ground_package: | linux_deb_package .PHONY: gcs ground_package linux_deb_package