[comp.databases] ingres, building abf 4GL using a makefile

sena@infinet.UUCP (Fred Sena) (06/16/89)

I am looking for information which will make it possible to compile 4GL
with a makefile.  We are using RCS (Revision Control System) to take care
of the source control issues.  We would like to automatically build our
applications.  ABF has no facility to do such a task without manual
intervention. Although I am aware that Ingres release 6.0 has some batching
capabilities, I still am not sure if that addresses the issues which I will
explain below.

We are running 4.2 BSD Unix on Sun 3 hardware and RTI Ingres 5.0.

Is there anyone out there who has already tried to set up an environment
similar to the one that I have described above?

I posted a request similar to this one about a month ago.  Because I was not
sure that it was possible to automate externally to abf, I was not sure what
information I needed.  From what I know now, I am more confident that
automation can be done without the use of abf.  Well, almost everything.  I
still have not figured out how to generate a file called: abextract.obj.

My concern at this point is whether I can be sure that the method that I am
using to replicate abf's actions is a valid method.  Valid meaning that
building applications with a new method yield exactly the same results as if
the applications had actually been built with abf.

What I did was I moved the following Ingres binaries in /usr/ingres/bin:
	osl	--> osl.exe
	oslsql  --> oslsql.exe
	vifred  --> vifred.exe

Then, I put bourne shell scripts in place of the original scripts.  Those
bourne shells had 'set -x' so that you could see what was going on.  Also,
they took the argument lists which were used to call the binaries and saved
the arguments into a file before passing them on to the actual binaries.
This way I could try to replicate the actions of abf on the command line.

This is an example of "vifred.sh":

----------------------------------------------------------
#!/bin/sh
#
# vifred.sh - shell to execute vifred so that argument list is saved and displayed.
#
#
# Attempt to open arg file in current directory.
touch vifred.args
if [ $? = 0 ]; then
        echo "$*" >vifred.args
fi
set -x
/usr/ingres/bin/vifred.exe $*
-------------------------------------------------------------
            \--  make sure that the directory on the last line is correct.

To set it up, all you have to do is:

% cd /usr/ingres/bin               <-- move to the ingres bin directory
% mv vifred vifred.exe
% cp /usr/mydir/vifred.sh .
% ln -s vifred.sh vifred


What I found was that abf was calling vifred using special options which were
not listed in the user's manual.  Is there any published information which
explains these special options?


When I tried to invoke vifred from the command line using the exact argument
list that abf used, it would not run.  After some playing, I found that when
the -Xblah-blah-blah option was removed, it ran fine.  The binaries osl and
oslsql work in exactly the same way.

The reason that I did that was I wanted to have vifred automatically change a
xxx.frm file into a xxxfo.c file.  To automate it, all you have to do is to
pipe the appropriate keys into the vifred command.  Below is an example of
how to invoke vifred as if you were in abf.

e.g.  To change xxx.frm into xxxfo.c, do the following:

First, you have to run "copyform" to load the .frm file into the database...
I have not done that yet, so I don't know the exact method.

  % tee key_list |vifred database_name -F xxx -C/usr/usrname/abf/xxxfo.c

   [ press appropriate keys to save and exit ]

then, after that, all you have to do is:

  % cat key_list |vifred database_name -F xxx -C/usr/usrname/abf/xxxfo.c


What I would like to know is what problems that I may encounter in this path
that I am going down.  I would like to exchange information with anyone else
who may be tackling this issue.

Oh, one more thing.  Someone mentioned to me that there is a Advanced ABF/4GL
seminar available from RTI.  Where would I write to to obtain a copy of the
notes from the seminar, or how do I sign up?  Most importantly, would that
information be of any use based on what I am doing?

	Thanks in advance for anyone who can provide further information,
	--fred
-- 
--------------------------------------------------
Frederick J. Sena                sena@infinet.UUCP
Memotec, Inc.  N. Andover, MA