diff options
author | Ryan Lortie <desrt@desrt.ca> | 2010-09-11 14:14:31 -0400 |
---|---|---|
committer | Ryan Lortie <desrt@desrt.ca> | 2010-09-11 14:14:31 -0400 |
commit | f873e355a2ee830a397fda4e70c4c04652c14238 (patch) | |
tree | d9acd9998e2f82e072f826c672009b6126bcc76e /contrib/parvala | |
parent | 806836b8e2f100e290b592899aef153d5792f6cd (diff) | |
download | vala-f873e355a2ee830a397fda4e70c4c04652c14238.tar.gz |
Host parvala in git
Diffstat (limited to 'contrib/parvala')
-rwxr-xr-x | contrib/parvala/parvala | 55 | ||||
-rw-r--r-- | contrib/parvala/parvala.mk | 30 |
2 files changed, 85 insertions, 0 deletions
diff --git a/contrib/parvala/parvala b/contrib/parvala/parvala new file mode 100755 index 000000000..db53b8f59 --- /dev/null +++ b/contrib/parvala/parvala @@ -0,0 +1,55 @@ +#!/bin/sh -e + +VALAC=valac +JOBS=10 + +#### + + +VALAFLAGS='' +makeflags='' + +while test -n "$*"; do + case "$1" in + --version) echo -n par; exec ${VALAC} --version;; + --disable-version-header) VALAFLAGS="${VALAFLAGS} $1";; + --vapidir) shift; VALAFLAGS="${VALAFLAGS} --vapidir $1";; + --pkg) shift; VALAFLAGS="${VALAFLAGS} --pkg $1";; + *.vala) valafiles="${valafiles} $1";; + --library) shift; vapi_file="$1";; + --directory=*) VALAFLAGS="${VALAFLAGS} $1";; + --basedir=*) VALAFLAGS="${VALAFLAGS} $1";; + --enable-checking) VALAFLAGS="${VALAFLAGS} $1";; + --thread) VALAFLAGS="${VALAFLAGS} $1";; + --pkg=*) VALAFLAGS="${VALAFLAGS} $1";; + --vapidir=*) VALAFLAGS="${VALAFLAGS} $1";; + -X) shift; VALAFLAGS="${VALAFLAGS} -X $1";; + -g) VALAFLAGS="${VALAFLAGS} $1";; + -d) shift; makeflags="${makeflags} DIRECTORY=$1/";; + -H) shift; h_file="$1";; + --ccode) c_mode="yes";; + -C) c_mode="yes";; + *) echo "parvala: unrecognised argument: $1"; exit 1;; + esac + shift +done + +if test -n "${h_file}"; then + if test -n "${vapi_file}"; then + makeflags="${makeflags} OUT_VAPI=${vapi_file}" + fi + makeflags="${makeflags} OUT_HFILE=${h_file}" +else + if test -n "${vapi_file}"; then + echo 'parvala: --library requires -H to also be specified' + fi +fi + +if test -z "${c_mode}"; then + echo 'parvala: required argument -C not specified' + exit 1 +fi + +make -j${JOBS} -f `dirname $0`/../share/parvala/parvala.mk \ + VALAC="${VALAC}" VALAFLAGS="${VALAFLAGS}" \ + VALAFILES="${valafiles}" ${makeflags} diff --git a/contrib/parvala/parvala.mk b/contrib/parvala/parvala.mk new file mode 100644 index 000000000..cd0938d78 --- /dev/null +++ b/contrib/parvala/parvala.mk @@ -0,0 +1,30 @@ +VALA_AUX = $(DIRECTORY).vala-aux/ + +.PHONY: all-vapi + +BASENAMES = $(notdir $(basename $(VALAFILES))) +VALA_FASTVAPI_FILES = $(foreach f, $(BASENAMES), $(VALA_AUX)$(f).vapi) +VALA_FASTVAPI_STAMPS = $(foreach f, $(BASENAMES), $(VALA_AUX)$(f).vapi.stamp) +VALA_DEPS = $(foreach f, $(BASENAMES), $(VALA_AUX)$(f).dep) + +all: $(VALA_DEPS) $(OUT_HFILE) + +.PRECIOUS: $(VALA_AUX)%.vapi.stamp $(VALA_AUX)%.dep + +$(VALA_AUX)%.vapi: ; + +$(VALA_AUX)%.vapi.stamp: $(DIRECTORY)%.vala | $(VALA_AUX) + @echo ' GEN '$(@:.stamp=); $(VALAC) --fast-vapi=$(@:.stamp=) $< && touch $@ + +$(VALA_AUX)%.dep: $(DIRECTORY)%.vala | $(VALA_FASTVAPI_STAMPS) + @echo ' GEN '$(<:.vala=.c); $(VALAC) -C --deps=$@ $(VALAFLAGS) $(addprefix --use-fast-vapi=,$(subst $(VALA_AUX)$(notdir $(basename $@)).vapi,, $(VALA_FASTVAPI_FILES))) $< + +$(VALA_AUX): + @mkdir -p $(VALA_AUX) + +include $(wildcard $(VALA_AUX)/*.dep) + +ifdef OUT_HFILE +$(OUT_HFILE) $(addsuffix .vapi,$(OUT_VAPI)): $(VALA_FASTVAPI_FILES) | $(VALA_FASTVAPI_STAMPS) + @echo ' GEN '$(OUT_HFILE) $(addsuffix .vapi,$(OUT_VAPI)); $(VALAC) -C -H $(OUT_HFILE) $(addprefix --library=,$(OUT_VAPI)) $(VALAFLAGS) $(addprefix --use-fast-vapi=,$(VALA_FASTVAPI_FILES)) && touch $(OUT_HFILE) +endif |