Blame Makefile.vapigen

Packit Service b23acc
# Makefile for Vala API Generator (vapigen)
Packit Service b23acc
# Written by Evan Nemerson
Packit Service b23acc
#
Packit Service b23acc
# The author disclaims copyright to this source code.  In place of
Packit Service b23acc
# a legal notice, here is a blessing:
Packit Service b23acc
#
Packit Service b23acc
#    May you do good and not evil.
Packit Service b23acc
#    May you find forgiveness for yourself and forgive others.
Packit Service b23acc
#    May you share freely, never taking more than you give.
Packit Service b23acc
#
Packit Service b23acc
# See http://live.gnome.org/Vala/UpstreamGuide for detailed documentation
Packit Service b23acc
#
Packit Service b23acc
# Variables:
Packit Service b23acc
#
Packit Service b23acc
#   VAPIGEN_FILES
Packit Service b23acc
#
Packit Service b23acc
#     VAPIs to create
Packit Service b23acc
#
Packit Service b23acc
#   *_DEPS / VAPIGEN_DEPS
Packit Service b23acc
#
Packit Service b23acc
#       The dependencies. Generally the pkg-config names.
Packit Service b23acc
#
Packit Service b23acc
#   *_METADATADIRS / VAPIGEN_METADATADIRS
Packit Service b23acc
#
Packit Service b23acc
#       Directory containing the metadata.
Packit Service b23acc
#
Packit Service b23acc
#   *_VAPIDIRS / VAPIGEN_VAPIDIRS
Packit Service b23acc
#
Packit Service b23acc
#       Additional location(s) to search for VAPI dependencies.
Packit Service b23acc
#
Packit Service b23acc
#   *_GIRDIRS / VAPIGEN_GIRDIRS
Packit Service b23acc
#
Packit Service b23acc
#       Additional location(s) to search for GIR dependencies.
Packit Service b23acc
#
Packit Service b23acc
#   *_FILES
Packit Service b23acc
#
Packit Service b23acc
#       The files which should be used to generate the VAPI.
Packit Service b23acc
Packit Service b23acc
_vapigen_silent_prefix = $(_vapigen_silent_prefix_$(V))
Packit Service b23acc
_vapigen_silent_prefix_ = $(_vapigen_silent_prefix_$(AM_DEFAULT_VERBOSITY))
Packit Service b23acc
_vapigen_silent_prefix_0 = @echo " VAPIGEN $(1)";
Packit Service b23acc
_vapigen_silent_opts = $(_vapigen_silent_opts_$(V))
Packit Service b23acc
_vapigen_silent_opts_ = $(_vapigen_silent_opts_$(AM_DEFAULT_VERBOSITY))
Packit Service b23acc
_vapigen_silent_opts_0 = --quiet
Packit Service b23acc
Packit Service b23acc
_vapi_name = $(subst /,_,$(subst -,_,$(subst .,_,$(1))))
Packit Service b23acc
Packit Service b23acc
define vapigen
Packit Service b23acc
$(1): $$($(_vapi_name)_GIR)
Packit Service b23acc
	$(_vapigen_silent_prefix) \
Packit Service b23acc
	G_DEBUG='' \
Packit Service b23acc
	$(VAPIGEN) $(_vapigen_silent_opts) \
Packit Service b23acc
	  --library $(1:.vapi=) \
Packit Service b23acc
	  $(foreach _vapi_metadatadir_name,$(if $($(_vapi_name)_METADATADIRS),$($(_vapi_name)_METADATADIRS),$(VAPIGEN_METADATADIRS)),--metadatadir $(_vapi_metadatadir_name)) \
Packit Service b23acc
	  $(foreach _vapi_dir_name,$(if $($(_vapi_name)_VAPIDIRS),$($(_vapi_name)_VAPIDIRS),$(VAPIGEN_VAPIDIRS)),--vapidir $(_vapi_dir_name)) \
Packit Service b23acc
	  $(foreach _vapi_gir_dir,$(if $($(_vapi_name)_GIRDIRS),$($(_vapi_name)_GIRDIRS),$(VAPIGEN_GIRDIRS)),--girdir $(_vapi_gir_dir)) \
Packit Service b23acc
	  $(foreach _vapi_dep_name,$(if $($(_vapi_name)_DEPS),$($(_vapi_name)_DEPS),$(VAPIGEN_DEPS)),--pkg $(_vapi_dep_name)) \
Packit Service b23acc
	  $$($(_vapi_name)_FILES) && \
Packit Service b23acc
	touch $(1)
Packit Service b23acc
endef
Packit Service b23acc
Packit Service b23acc
$(foreach vapi,$(VAPIGEN_VAPIS),$(eval $(call vapigen,$(vapi))))