Tareas comunes en Aubit4GL's How-to

Contenido/contents:
Compile simple program
Compile several modules as a program
Using several databases
Switching databases
Pagina principal/Home page

Compilar programa sencillo Compile simgle program
Es necesario decirle las extensiones, .4gl para el programa fuente, y .4ae para el binario.
aubit 4glc prog.4gl -o prog.4ae
Compilar formas Compile forms
Se le puede teclear la extension a la frm o usa .per por omision.
aubit fcompile progf1
Yo tengo un sencillo archivo de comandos que me compila todas la formas en un ciclo.
for $f in *.per
do
    echo $f
    aubit fcompile $f
done
Compilar varios modulos como un solo programa Compile several modules as a program
Con este comando se compilan todos los archivos de definicion terminado en .mk del directorio actual.
aubit amake
Se le puede decir que solo compile un solo programa diciendole cual queremos.
aubit amake menu.mk
Que es amake? What is amake?
En esta pagina http://aubit4gl.sourceforge.net/aubit4gldoc/manual/html/amake.html Andrej explica su funcionamiento y opciones.
En resumen es como el make pero sirve para cualquier x4GL (Aubit, 4JS, i4GL, etc.) y sus reglas no son tan sangronas como el make.
La estructura es mas sencilla, y es un archivo por 'target' o programa.
PROG            = testmk

GLOBALS.4gl     = globdef.4gl

FILES.4gl       = \
                ${GLOBALS.4gl} \
                testmk.4gl \
                utility.4gl

FILES.per       = \
                testmk.per
Generando archivos .mk de la base syspgm4gl (RDS) Generating .mk files from RDS syspgm4gl database
Amake ya tiene sus utilierias para convertir viejos archivos de make a .mk (prepmake y genmake) , pero si eres como yo que usa el sistema RDS para compilar los programas tendras que generar tus archivos .mk a mano.
Yo tengo este script que me genera el archivo mk para un programa, lee la informacion de la base de datos syspgm4gl que es el default de Informix 4GL RDS.
#!/bin/bash
if [ a$1 = a ]
then
   echo "usage: $0 progname"
   exit 1
fi
work=$1.tmp
file=$1.mk
db=syspgm4gl
echo "PROG\\t= $1" >$work
echo " " >>$work
echo "GLOBALS.4gl\\t=\\t\\" >>$work
dbaccess $db - <&1 | grep "/"  >>$work
select distinct "\\t"||trim(nvl(gpath,"."))||"/"||trim(globname)||".4gl\\t\\"
from global
where progname = "$1"
order by 1
EOD
echo " " >>$work
echo " " >>$work
echo "FILES.4gl\\t=\\t\${GLOBALS.4gl} \\" >>$work
dbaccess $db - <&1 | grep "/" >>$work
select distinct "\\t"||trim(nvl(spath,"."))||"/"||trim(fglsourcename)||".4gl\\t\\"
from source4gl
where progname = "$1"
order by 1
EOD
echo " " >>$work
echo " " >>$work
sed -e 's/\\t/  /g;s/ *$//' $work >$file
rm $work
Como mencione anteriormente, yo compilo todas las formas con otro script, por lo cual no las agrego en el archivo .mk.
Uso de varias bases de datos Using several databases
Cambio de bases de datos Switching databases