FlagShip
Tech Info
| |
Fedora
Core 14 to 20
tested with |
kernel: |
2.6.35.10-74.fc14.i686 |
|
2.6.35.10.fc14.x86_64 |
|
2.6.38.7-30.fc15.x86_64 |
|
3.1.5-6.fc16.x86_64 |
|
check: uname -a |
|
gcc : |
4.5.1 |
|
4.5.1 |
|
4.6.0 |
|
4.6.2 |
|
check: cc -v |
|
glibc : |
2.12.90 |
|
2.12.90 |
|
2.14 |
|
2.14.90 |
|
check: /lib/libc.so.6 |
|
X11 : |
1.9.0 |
|
1.9.0 |
|
1.10.2 |
|
1.11.2 |
|
check: Xorg -version |
Fedora Core home page: http://fedoraproject.org
Linux Installation
Hints:
- Packages: in
addition to Fedora's default suggestions and your choices, check/install
following packages (required for development only, except where noted):
- Software Development
(or PkgCollection: Development Tools and Development Libraries)
- Editors
- tcsh and xterm (for
Terminal i/o mode, required also for executables)
- libjpeg-static-* library
(required for building static executables, search for by "libjpeg"
in Search/Description)
- static C libraries
(required for building static executables, search for by "libc"
in Search/Description)
- libX11-devel-* library
(optional, required only for building self-contained static executables)
- For 32-bit Fedora
distribution, you may install all required packages by executing
su ; yum
install gcc gcc-c++
glibc-devel glibc-static libstdc++-static libSM-devel libjpeg
libjpeg-turbo-static libX11-devel libXext-devel libXft libICE-devel
SDL-static tcsh
- For 64-bit Fedora
distribution, you will additionally need standard 32bit
packages. They are available in http://download.fedora.redhat.com/pub/fedora/linux/releases/REL/Everything/i386/os/Packages
(where the REL is your
current Fedora release, e.g. 16). To fetch these packages
automatically by yum,
either issue
su ; yum-config-manager --add-repo=yum-config-manager --add-repo=http://download.fedoraproject.org/pub/fedora/linux/releases/REL/Everything/i386/os/
where REL is your current Fedora version, e.g. 14, 15, 16 or 18
or add following section in the file /etc/yum.repos.d/fedora.repo :
[fedora-i686]
name=Fedora $releasever - $basearch - i386
failovermethod=priority
baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/i386/os/
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=i386
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386
and then execute
su ; yum install gcc gcc-c++ glibc-devel.i686 libstdc++
glibc-static.i686 libstdc++-devel.i686 libjpeg libjpeg-turbo-static.i686
libICE libICE-devel.i686 libSM libSM-devel.i686 libX11 libX11-devel.i686
libXext libXext-devel.i686 libXft SDL-static.i686 tcsh fontconfig.i686
libXft.i686 libXft-devel.i686 libXrender.i686
See also this 64bit
info for further information. Since
32bit libs are available in Fedora per default in /usr/lib
(and 64bit libs in /usr/lib64), you don't need to change
the -L path nor anything else in the /usr/local/FlagShip7/FS7config file.
Installation
of Visual FlagShip 7.1.* (VFS7):
- Install
the .rpm based package FlagShip-7*.rpm, see the booklet for
details and step-by-step instruction. If the rpm installer reports unresolved dependency libjpeg.so, install package libjpeg-turbo and
libjpeg-turbo-static (check for i686 version by "yum provides libjpeg-turbo").
- The main FlagShip directory
is /usr/local/FlagShip7
- Fedora may 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 Fedora distribution.
- You may ignore the message
"could not locate static X11 library..." from FlagShip installer, however the static libX11.a is available here.
Using FlagShip:
- 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/FlagShip7/examples ; make
- If you get message "error
while loading shared libraries ... cannot
restore segment prot after reloc: Permission denied" at the time of
executing the application, you will need to set SELinux security
context for shared FlagShip library, see "Installation" paragraph
above.
- 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
newfswin ./a.out #
for Textual i/o mode in X11 environment
- In some Fedora 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.
Printable manual in pdf format is available in /usr/local/FlagShip7/manual
or in Web.
- Step-by-step instruction
for converting available applications to GUI is given in
fsman section LNG.9.6
- Examples are
available in /usr/local/FlagShip7/examples (simply invoke "make"
and "make terminal" there), as well as in the /usr/local/FlagShip6/tools
directory (read the *.txt info files there). Best to copy them to
your working directory when you wish to modify the source.
- You may use the FlagShip's distribute.sh script
to customize all redistributable files with your application.
- 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 eiter 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.
- If you have enabled new
kernel security extensions from the SELinux project
(default since Fedora 7), and get "error while loading
shared libraries: /usr/lib/libFlagShip6.so: cannot restore segment
prot after reloc: Permission denied" at the time of invoking
dynamically linked executable, you will need to enable security context
for your shared FlagShip library by issuing :
su -c "chcon -t textrel_shlib_t /usr/local/FlagShip7/lib/libFlagShip7*.so"
or disabling SELinux altogether in your /etc/sysconfig/selinux file by setting
the line SELINUX=disabled
- 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).
|