-*- mode: Text -*- ------------------------------------------------------------------------------- BUILDING FLICK ------------------------------------------------------------------------------- In order to build Flick you will need: An ANSI C compiler gcc 2.7.2.1 is our usual compiler; Flick has previously been built with gcc 2.6.3 and 2.5.8. (See note about gcc 2.5.8 below.) An ANSI C++ compiler g++ 2.7.2.1 is our usual compiler; again, Flick has worked with g++ 2.6.3 / 2.5.8 in the past. GNU make Versions 3.69, 3.74, 3.75, and 3.77 have been tested. flex or lex Flex versions 2.4.6, 2.5.2, and 2.5.4 have been tested. Vendor-provided versions of lex should work, but this has not been extensively tested. bison or yacc Bison version 1.25 has been tested; version 1.22 is known *not* to work. Vendor-provided versions of yacc should work, but have not been extensively tested. Disk space You will need ~140MB of free disk space for a fully debuggable Flick object tree, and an additional 100--200MB in order to run the Flick tests. NOTE that using gcc/g++ 2.5.8 may cause problems with debugging. Flick's data structures are not fully specified in the debugging information output by early versions of g++. This causes gdb not to examine many data structures fully. We recommend that you use g++ 2.7.2.1 in order to avoid this problem. Once you have those tools, you must unpack the Flick distribution tar file and create a build tree to contain the object files. If you create a build directory called `obj', your directory setup would look as follows: ~/flick-2.1 - the Flick source tree ~/obj - the Flick object tree In that configuration, you would type the following commands in order to first configure Flick for your operating system and then compile all of the Flick tools: cd ~/obj ../flick-2.1/configure make (*** Cygwin users: see `support/cygwin32/README' for help building Flick on Windows 95/NT with the Cygwin library.) If all goes well, links to the suite of Flick programs will be installed in `~/obj/bin'. See the instructions below to install the Flick tools in a place outside of the Flick object tree. Flick 2.1 has been successfully built and tested on the following platforms: FreeBSD 3.0-CURRENT (Intel Pentium II, gcc/g++ 2.95.1) FreeBSD 3.0-CURRENT (Intel Pentium II, gcc/g++ 2.7.2.1) Linux 2.2.12 (Intel Pentium II, egcs 1.1.2) SunOS 5.7 (Solaris) (Sun 4u SPARC, gcc/g++ 2.8.0) SunOS 5.7 (Solaris) (Sun 4u SPARC, Sun WorkShop C/C++ 5.0) SunOS 5.7 (Solaris) (Sun 4u SPARC, Sun WorkShop C/C++ 4.2) 4.3+ BSD (HP 9000/J210XC PA-RISC 1.1, gcc/g++ 2.7.2) IRIX64 6.5 (SGI Origin 2000, MIPSpro 64-bit C/C++ 7.30) Windows 95 (egcs 1.1 w/Cygnus' Cygwin library b20.1) Windows NT 4.0 (egcs 1.1 w/Cygnus' Cygwin library b20.1) FreeBSD is the current Flick development platform. Flick-generated stubs have also been tested on Mach/Lites and our Fluke OS. If you build Flick on a platform other than the ones listed above, the Flick developers would love to know about it. Of course, if the build fails, they would like to know about that, too. Send build reports, bug reports, praise and damnation to . ------------------------------------------------------------------------------- BUILDING THE FLICK RUNTIME LIBRARIES ------------------------------------------------------------------------------- Flick's `configure' script automatically determines which of Flick's runtime libraries should be built and installed for your system. In general, the IIOP and ONC/TCP runtimes (for CORBA C language stubs and ONC RPC C language stubs, respectively) are always built. The other, more special-purpose runtime libraries are built only when `configure' detects that special header files are available on your system. Read the `doc/usersguide/user.ps' file for details. Flick's C++ CORBA stub generator creates stubs that work with TAO, the real-time ORB from Washington University in St. Louis. You will need a copy of TAO version 1.0 (from or ) in order to make use of Flick's optimized C++ CORBA stubs. TAO provides all the required runtime support for Flick-generated C++ stubs, and therefore, there is no library in Flick's `runtime' directory for C++ CORBA stubs. ------------------------------------------------------------------------------- INSTALLING FLICK ------------------------------------------------------------------------------- You can install the Flick binaries, libraries, and header files in a ``standard'' place on your system by typing the following command in the root directory of the Flick object tree (`~/obj' in our example configuration): make install By default, the root installation directory is `/usr/local'. You can change this default by specifying the `--prefix' option to `configure', e.g.: ../flick-2.1/configure --prefix=/usr/local/flick make # to build Flick make install # to install Flick under `/usr/local/flick' It is not necessary to ``install'' Flick in order to run the provided tests (see below) or to build your own stubs. ------------------------------------------------------------------------------- TESTING FLICK ------------------------------------------------------------------------------- Flick comes with a set of test IDL inputs and example programs; these are in the `test' subdirectory of the distribution. A `make' in the root of the Flick object tree will *not* run the Flick tools against these test inputs. However, running your newly compiled tools against the provided tests is easy. In a sentence: Go to the `test' subdirectory of your Flick object tree and type `make'. The `README' file in Flick's `test' source directory contains additional, more detailed instructions for compiling the various test IDL inputs and programs. The test programs (in `test/programs/*') illustrate how client and server code can use Flick's IIOP, ONC/TCP, Mach 3, and Trapeze runtime libraries in conjunction with Flick-generated stubs. Read the `doc/usersguide/user.ps' file for instructions for using Flick to compile your own IDL files. Note that most of the example application programs in `test/examples' are out of date and may not compile at all. The exception is `test/examples/phone', which is the example developed in the Flick user's guide. The `phone' example is implemented for both CORBA and ONC RPC. ------------------------------------------------------------------------------- ## End of file.