Sorry, there is no automatic installation yet.

You will need a sufficiently new version of guile - it must have
modules `getopt-long' and `format'. 1.3.4 is OK.

Lexer and parser use the Andrew Archibald's package of
guile-rgx-ctax
(ftp://ftp.red-bean.com/pub/guile/contrib/misc/guile-lang-allover-0.1.tar.gz).
Thus, it is necessary to install it. I include a (trivial) patch,
that seems to be sufficient to make it  working with the new
release of guile (I did not check the ctax, though).

Files g+f-{lex,parser,grammar}.scm are supposed to be installed as
(lang g+f lex), ... modules. If you choose a location, different
from $(GUILE_ROOT)/lang/g+f/*, please, make appropriate changes in 
the g+f-{lex,parser,grammar}.scm.

Put g+f.scm somewhere in the $PATH.

Put g+f.h somewhere, where $CC can find it.

That's all.

=== 
File example.g+f contains example of description of few LAPACK
and BLAS routines.

I used it as follows:
val [1]> g+f.scm -m local/users/val/Lapack -o Lapack.c example.g+f
Function #1	
Function #2
Function #3
Function #4
val [2]> libtool gcc -c -O3 Lapack.c
...
val [3]> libtool gcc --mode=link g77 -o libLapack.la Lapack.lo \
-rpath /usr/local/share/guile-1.3.4/site/local/users/val \
-export-dynamic -llapack -lblas
...
val [4]> libtool cp libLapack.la /usr/local/share/guile-1.3.4/site/local/users/val/
...
val [5]> libtool --finish /usr/local/share/guile-1.3.4/site/local/users/val/
val [6]> guile
guile> (use-modules (local users val Lapack))
guile> (define ac 
#c( 1+0i 0+2i 3+0i 0+4i
... 0+0i 5+0i 0+6i 7+0i
... 0+0i 0+0i 0+8i 9+0i 
... 0+0i 0+0i 0+0i 0+10i))
                 ;;; note, this is the LOW TRIANGLE fortran matrix!
guile> (define bc
#c( 1+0i 0+0i 0+0i 0+0i
... 0+0i 1+0i 0+0i 0+0i
... 0+0i 0+0i 1+0i 0+0i
... 0+0i 0+0i 0+0i 1+0i))
guile> (define aac 
#c( 1+0i 0+2i 3+0i 0+4i
... 0+0i 5+0i 0+6i 7+0i
... 0+0i 0+0i 0+8i 9+0i 
... 0+0i 0+0i 0+0i 0+10i))
		;;; this is a copy of ac
guile> (lapack:zsysv #\l aac bc)
0
guile> bc
#c(-0.196868859732522+1.42305254484376i 
-0.106801039487862+0.649141154845661i 
0.134626354820308-0.488590986879635i 
0.0640806236927173-0.52281802624073i 
-0.106801039487862+0.649141154845661i 
0.0540660455092855+0.395353996323762i 
-0.0171135196805476-0.298060467769538i 
0.0342270393610954-0.237212397794257i 
0.134626354820308-0.488590986879635i 
-0.0171135196805476-0.298060467769538i 
-0.00513405590416433+0.160581859669139i 
0.0102681118083286+0.178836280661723i 
0.0640806236927173-0.52281802624073i 
0.0342270393610954-0.237212397794258i 
0.0102681118083286+0.178836280661723i 
-0.0205362236166571+0.142327438676555i)
guile> (array-for-each (lambda (x y) (display (- x y)) (newline)) 
...	(blas:*zs ac bc) #i(1 0 0 0   0 1 0 0   0 0 1 0   0 0 0 1))
6.66133814775094e-16-4.44089209850063e-16i
-8.88178419700125e-16-6.10622663543836e-16i
0.0-2.66453525910038e-15i
1.77635683940025e-15+1.11022302462516e-16i
2.22044604925031e-16+3.33066907387547e-16i
2.22044604925031e-16-4.44089209850063e-16i
4.44089209850063e-16-8.88178419700125e-16i
0.0+4.44089209850063e-16i
-2.77555756156289e-17+5.55111512312578e-17i
3.33066907387547e-16+3.88578058618805e-16i
0.0+2.22044604925031e-16i
0.0+1.11022302462516e-16i
-1.80411241501588e-16+3.33066907387547e-16i
4.44089209850063e-16+8.32667268468867e-17i
4.44089209850063e-16+8.88178419700125e-16i
0.0+1.66533453693773e-16i
guile> (quit)

===
Have a luck.

	V.K.