FlagShip
Tech Info
| |
Ubuntu
8 to 14 & LTS
tested with |
version : |
8.04.1 |
9.04 (i386 and amd64) |
10.10 (64bit) |
11.10 (x86_64) |
12.04 LTS (32 & 64bit) |
|
check: CD or DVD label |
|
kernel : |
2.6.24 |
2.6.28 |
2.6.35-25 |
3.0.0-14 |
3.2.0-29 |
|
check: uname -a |
|
gcc : |
4.2.3 |
4.3.3 |
4.4.5 |
4.6.1 |
4.6.3 |
|
check: cc -v |
|
glibc : |
2.7 |
2.9 |
2.12.1 |
2.13 |
2.15 |
|
check: /lib/i386-linux-gnu/libc.so.6 or /lib/libc.so.6 or /lib32/libc.so.6 |
|
X11 : |
Xorg 1.4.0.90 |
Xorg 1.6.8 |
Xorg 1.9.0 |
Xorg 1.10.4 |
Xorg 1.11.3 |
|
check: Xorg
-version |
Ubuntu home
page: http://www.ubuntu.com
Ubuntu Linux Installation
Hints:
- Packages: in
addition to default suggestions and your choices,
- choose "Desktop" or "Server" for
the installation type
- VFS6 only: when
the default installation finishes, install package "libstdc++5"
via System → Administration → Synaptic Package Manager,
otherwise VFS would report at linking stage "/usr/bin/ld:
warning: libstdc++.so.5, needed by /usr/local/FlagShip6/lib/libFlagShip6.so,
not found"
- for running executables
in Terminal i/o mode using "newfswin" script, you
will also need to install the "tcsh" package
- to be able to create
statically linked executables, install packages "libxext-dev", "libsm-dev",
"libstdc++6-4.*-dev" and "libjpeg62-dev"
- For 64-bit Ubuntu
distribution, you will additionally need standard packages "ia32-libs", "gcc-4.x-multilib" and
"g++-4.x-multilib" (where 4.x corresponds to your installed
gcc, e.g. 4.3). For
VFS6, install also the "lib32stdc++5" package,
e.g. from https://launchpad.net/ubuntu/warty/amd64/lib32stdc++5/
- 32bit libraries are located in /lib/lib32/*
- See also this 64bit
info for further requirements.
- 32bit Ubuntu in
short:
- All packages for running
your executables on customer's system are installed automatically
by Ubuntu default installation.
- For development, open terminal/konsole and invoke "sudo
apt-get install tcsh gcc g++ libjpeg62-dev xorg-dev" to
install all required packages for dynamic and static linking.
- 64bit Ubuntu in
short:
- For
running your executables on customer's system, you/he needs to
install 32bit run-time Linux libraries, since Ubuntu installs
by default only 64bit libs. Either install "ia32-libs" via
Synaptic or invoke "sudo
apt-get install tcsh ia32-libs"
- For development, open terminal/konsole and invoke "sudo
apt-get install tcsh gcc gcc-multilib g++ g++-multilib ia32-libs libjpeg62-dev:i386
xorg-dev" to install all required packages
for dynamic and static linking.
- See also this 64bit
info for further information.
Installation
of Visual FlagShip 7.1.* (VFS7):
- Install
the tar (non-rpm) based package FlagShip-7*.tgz, see the booklet for
details and step-by-step instruction
- The main FlagShip directory
is /usr/local/FlagShip7
- Ubuntu supply all required
static libraries in packages suggested above,
so you may compile both dynamically (default) and statically (using
the
-stat compiler switch). If you get get some warnings at the end of
FlagShip installation, or linker errors at static linking, post-install
the
required packages noted above from the Ubuntu distribution.
Using FlagShip:
- In VFS7, read the short
step-by-step instruction for using FlagShip in the booklet (available
also in the main /usr/local/FlagShip7 directory)
- If in X/GUI environment
(KDE, Gnome etc): open console/terminal window.
- To test and run supplied
examples, invoke cd /usr/local/FlagShip6/examples ; make
If the default link /bin/sh → /bin/dash causes difficulties, invoke "cd /bin ; sudo rm sh ; sudo ln -s bash sh"
- Compile your
sources as described in fsman section FSC, e.g. "FlagShip
myapp*.prg",
a short help is available via "FlagShip -h". Note the case sensitive names in Unix/Linux.
- Watch for displayed compiler
and linker errors, and fix if any.
- If everything is ok,
execute (see fsman section FSC):
./a.out # in
GUI mode
./a.out -io=t #
in Textual i/o mode, preferably with "Terminal → Character
Encoding → Western (IBM850)"
newfswin ./a.out #
alternative for Textual i/o mode in X11 environment
- You may use the FlagShip's distribute.sh script
to customize all redistributable files with your application.
- In some Ubuntu packages,
you may need to disable line 416 (#xrdb -merge ...) and enable line
419 (source $FlagShipDir/bin/$xmapFile) in /usr/local/FlagShip6/bin/newfswin
to proper support Terminal i/o in X11 environment.
- The on-line manual is
available by entering "fsman &" in
KDE/Gnome console
for GUI mode, or "newfswin fsman" for textual mode.
Manual in pdf format is available in /usr/local/FlagShip[6,7]/manual
or in Web. Printed manual
is available upon request.
- Step-by-step instruction
for converting available applications to GUI is given in
fsman section LNG.9.6
- Examples are
available in /usr/local/FlagShip[6,7]/examples and .../tools
directory. Best to copy them to your working directory.
- On problems or questions,
please check the on-line manual and FAQ first. If
your problem persist, contact FlagShip support -
we grant free tech support not only for the licensed,
but also for the Test/Eval version.
Known Issues :
- If the PC-8 semi-graphic
characters are displayed in textual mode as Ä's
(A-umlaut) etc, you may either
- start the application via newfswin, newfscons or newfsterm (see
above and Release Notes in fsman) which automatically sets the proper
environment, or
- disable Unicode i.e.
set the environment variable "LANG=en_EN",
and start the application via newfswin
See also and/or test with
/usr/local/FlagShip6/examples/boxcommand.prg
- If the last character in
the manual pages seems to be missing in GUI mode, select Courier[adobe]
via Menu→Options→Font→Input/Output or assign other font
via command-line parameter, see fsman -h for furtehr details.
- In some Ubuntu versions you may receive following messages after installing FlagShip (and applying above sudo apt-get ...):
a) NOTE: could not locate static C library named 'libc.a' ...
b) NOTE: could not locate static jpeg library named 'libjpeg.a' ...
c) NOTE: could not locate static X11 library named 'libX11.a' ...
where a) and b) are harmless, these libs are usually located on Ubuntu in the /usr/lib/i386-linux-gnu directory,
and also the libX11.a for c) is in Ubuntu often located in the same directory, except for some 64bit distributions.
To resolve unresolved externals when compiling statically with the "-stat" switch, edit the /usr/local/FlagShip7/etc/FS7config file to read (here in extract):
MACRO1 :-L$(FSDIR)/lib -L/usr/lib32 -L/usr/lib/i386-linux-gnu -L/lib -L/usr/lib -L/usr/X11/lib -L/usr/X11R6/lib -L/usr/local/lib
MACRO3 :-lm -lXext -lX11 -lXft -lSM -lICE -ljpeg -lstdc++
- In some 64-bit Ubuntu (like 12.04 LTS), there are missing links in /usr/lib/i386-linux-gnu
required for static link with the "-stat" switch. If you get linker message
like "/usr/bin/ld: cannot find -lX11 | -lXext | -lXft | -lICE | -lSM" etc, you will need
to add missing links for these libs:
cd /usr/lib/i386-linux-gnu
sudo ln -s libX11.so.6 libX11.so ; sudo ln -s libXext.so.6 libXext.so ; sudo ln -s libXft.so.2 libXext.so
etc.
- When compiling large sources, you may get
compiler error "** Warning: C compiler not invoked" but without any displayed syntax error.
This is caused by insufficient stack size (stack overflow in yacc/lex parser) for large source files or many continuation statements
(check the displayed source code line). You may increase the stack by e.g. "uname -s 30000".
If you get here a message "ulimit: stack size: cannot modify limit..." you need to
set (as su/root/sudo) "uname -Hs 30000",
then re-open the user terminal, and set "uname -s 30000" anew.
You may add this also in your ~/.bashrc script for an automatic set at login.
Additional Info:
Since FlagShip translates the Xbase code to C code as an intermediate step and requires object compatible libs during the linking stage, C compilers, utilities and libraries must be chosen with great care, otherwise upredictable errors may occur.
The
C compiler (and the optional static libs) is required only in the
developing phase, it is not required for the user of your application,
which only needs the by FlagShip produced executable (i.e. your own application
executables, see also fsman section SYS.1.2 for distribution hints).
|