tool/port: access to metadata of ports

Fixes #4685
This commit is contained in:
Christian Helmuth 2023-01-20 15:22:12 +01:00
parent 4ab52aaf12
commit 07d02f8d46
2 changed files with 88 additions and 0 deletions

34
tool/ports/metadata Executable file
View File

@ -0,0 +1,34 @@
#!/usr/bin/make -f
#
# \brief Tool for retrieving metadata of port sources
# \author Christian Helmuth
# \date 2023-01-20
#
ifndef VERBOSE
MAKEFLAGS += --no-print-directory
endif
export GENODE_DIR := $(realpath $(dir $(MAKEFILE_LIST))/../..)
usage:
@$(ECHO)
@$(ECHO) "Tool for retrieving version information of port sources"
@$(ECHO)
@$(ECHO) "usage:"
@$(ECHO)
@$(ECHO) " $(notdir $(MAKEFILE_LIST)) <ports>"
@$(ECHO)
@$(ECHO) " <ports> whitespace-separated list of ports"
@$(ECHO)
TARGETS = $(sort $(MAKECMDGOALS))
.PHONY: $(TARGETS)
.NOTPARALLEL:
$(TARGETS):
@$(MAKE) -f $(GENODE_DIR)/tool/ports/mk/metadata_single_port.mk $@
@$(ECHO)

View File

@ -0,0 +1,54 @@
#
# \brief Retrieve version information of port source
# \author Christian Helmuth
# \date 2023-01-20
#
PORTS_TOOL_DIR ?= $(GENODE_DIR)/tool/ports
include $(GENODE_DIR)/tool/ports/mk/front_end.inc
include $(GENODE_DIR)/tool/ports/mk/check_port_arg.inc
#
# Include definitions provided by the port description file
#
include $(PORT)
.NOTPARALLEL:
#
# Assertion for the presence of a LICENSE and VERSION declarations in the port
# description
#
ifeq ($(LICENSE),)
$(TARGET): license_undefined
license_undefined:
@$(ECHO) "Error: License undefined"; false
endif
ifeq ($(VERSION),)
$(TARGET): version_undefined
version_undefined:
@$(ECHO) "Error: Version undefined"; false
endif
info:
@$(ECHO) "PORT: $(PORT_NAME)"
@$(ECHO) "LICENSE: $(LICENSE)"
@$(ECHO) "VERSION: $(VERSION)"
%.file:
@$(ECHO) "SOURCE: $(URL($*)) ($*)"
%.archive:
@$(ECHO) "SOURCE: $(URL($*)) ($*)"
%.git:
@$(ECHO) "SOURCE: $(URL($*)) git $(REV($*)) ($*)"
%.svn:
@$(ECHO) "SOURCE: $(URL($*)) svn $(REV($*)) ($*)"
$(DOWNLOADS): info
$(TARGET): $(DOWNLOADS)