############################################################################### # # Function definitions of the naoki build system # ############################################################################### include $(PKGROOT)/gmsl DO_PACKAGE_FILENAME = $(1)$(call DO_PKG_SUFFIX,$(1)) DO_PKG_SUFFIX = \ -$(if $(PKG_VER-$(1)),$(PKG_VER-$(1)),$(PKG_VER))-$(DISTRO_SNAME)$(DISTRO_EPOCH)-$(PKG_ARCH).$(if $(PKG_REL-$(1)),$(PKG_REL-$(1)),$(PKG_REL)).ipk define DO_INIT # Run ldconfig ldconfig endef define DO_PACKAGE @echo "#####################################################################" @echo "# $(1) - Package build started" @echo "#####################################################################" @$(foreach var,$(PKG_VARIABLES),$(if $($(var)-$(1)),$(var)="$(strip $($(var)-$(1)))",$(var)="$(strip $($(var)))")) \ $(DIR_TOOLS)/packager $(1) $(DIR_PACKAGES)/$(call DO_PACKAGE_FILENAME,$(1)) @echo "#####################################################################" @echo "# $(1) - Package build finished" @echo "#####################################################################" endef define DO_FILELIST @echo "# Filelist dump" @cd $(BUILDROOT) && find -ls endef define DO_PACKAGE_VARIABLE @echo $(if $($(1)-$(2)),$(1)="\"$(strip $($(1)-$(2)))\"",$(1)="\"$(strip $($(1)))\"") endef define DO_PACKAGE_INFO @echo "PKG_NAME=\"$(1)\"" $(foreach var,$(PKG_VARIABLES),$(call DO_PACKAGE_VARIABLE,$(var),$(1))) @echo endef define __INSTALL_DEFAULT -mkdir -pv $(BUILDROOT)/etc/default cd $(DIR_APP) && cp -vf $(1) $(BUILDROOT)/etc/default/$(subst .default,,$(notdir $(1))) endef define DO_INSTALL_DEFAULT $(foreach file,$(PKG_DEFAULT_FILES),$(call __INSTALL_DEFAULT,$(file))) endef define __INSTALL_SYSTEMD -mkdir -pv $(BUILDROOT)$(SYSTEMD_UNIT_DIR) cd $(DIR_APP) && cp -vf $(1) $(BUILDROOT)$(SYSTEMD_UNIT_DIR)/$(notdir $(1)) endef define DO_INSTALL_SYSTEMD $(foreach file,$(PKG_SYSTEMD_FILES),$(call __INSTALL_SYSTEMD,$(file))) endef define __INSTALL_SYSTEMD_TMPFILES -mkdir -pv $(BUILDROOT)$(SYSTEMD_TMPFILES_DIR) cd $(DIR_APP) && cp -vf $(1) $(BUILDROOT)$(SYSTEMD_TMPFILES_DIR)/$(subst .tmpfiles,.conf,$(notdir $(1))) endef define DO_INSTALL_SYSTEMD_TMPFILES $(foreach file,$(PKG_SYSTEMD_TMPFILES),$(call __INSTALL_SYSTEMD_TMPFILES,$(file))) endef define __INSTALL_PAM -mkdir -pv $(BUILDROOT)/etc/pam.d cd $(DIR_APP) && cp -vf $(1) $(BUILDROOT)/etc/pam.d/$(subst .pam,,$(notdir $(1))) endef define DO_INSTALL_PAM $(foreach file,$(PKG_PAM_FILES),$(call __INSTALL_PAM,$(file))) endef define DO_PYTHON_COMPILE @find $(BUILDROOT) -name "*.py" | xargs $(BUILD_TOOLS)/py-compile endef define DO_FIX_LIBTOOL # remove rpath from libtool @if [ -e "libtool" ]; then \ sed -i libtool \ -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g'; \ fi endef define DO_PREPARE # Initialize the environment at the beginning $(DO_INIT) @echo "#####################################################################" @echo "# $(PKG_NAME) - Preparation started" @echo "#####################################################################" $(STAGE_PREPARE) @echo "#####################################################################" @echo "# $(PKG_NAME) - Preparation finished" @echo "#####################################################################" endef define DO_BUILD @echo "#####################################################################" @echo "# $(PKG_NAME) - Build started" @echo "#####################################################################" $(STAGE_BUILD) @echo "#####################################################################" @echo "# $(PKG_NAME) - Build finished" @echo "#####################################################################" endef define DO_TEST @echo "#####################################################################" @echo "# $(PKG_NAME) - Test started" @echo "#####################################################################" $(STAGE_TEST) @echo "#####################################################################" @echo "# $(PKG_NAME) - Test finished" @echo "#####################################################################" endef define DO_INSTALL @echo "#####################################################################" @echo "# $(PKG_NAME) - Install started" @echo "#####################################################################" -mkdir -pv $(BUILDROOT) $(STAGE_INSTALL) $(DO_INSTALL_DEFAULT) $(DO_INSTALL_SYSTEMD) $(DO_INSTALL_SYSTEMD_TMPFILES) $(DO_INSTALL_PAM) @echo "#####################################################################" @echo "# $(PKG_NAME) - Install finished" @echo "#####################################################################" $(DO_STRIP) $(DO_PYTHON_COMPILE) $(STAGE_INSTALL_POST) $(DO_QUALITY_AGENT) $(DO_FILELIST) endef STAGE_PACKAGE_TARGETS = $(call reverse,$(PKG_PACKAGES_FILES)) STAGE_DONE = $(ROOT)/.done define STAGE_PREPARE $(if $(PKG_TARBALL),cd $(DIR_SRC) && $(DO_EXTRACT) $(DIR_DL)/$(PKG_TARBALL)) $(if $(PKG_PATCHES),$(DO_PATCHES)) $(STAGE_PREPARE_CMDS) $(STAGE_PREPARE_CMDS2) endef STAGE_BUILD_TARGETS = define STAGE_BUILD cd $(DIR_APP) && [ ! -e "configure" ] || \ $(CONFIGURE_ENVIRONMENT) \ ./configure \ $(CONFIGURE_OPTIONS) $(DO_FIX_LIBTOOL) $(STAGE_CONFIGURE_CMDS) cd $(DIR_APP) && make $(STAGE_BUILD_TARGETS) $(PARALLELISMFLAGS) $(STAGE_BUILD_CMDS) endef STAGE_INSTALL_TARGETS = install define STAGE_INSTALL cd $(DIR_APP) && make $(STAGE_INSTALL_TARGETS) DESTDIR=$(BUILDROOT) $(STAGE_INSTALL_CMDS) endef