FAQ
Access troubles
- Why does the execution of the command: source INSTALLATION
DIRECTORY/polychronyEnv generate "WARNINGS"?
Don't worry, it is normal. The installation procedure is general for future "Open Source" distribution.
So, some directories are missing. For example, you can have the following trace:
%% WARNING %% make sure to call this as < source setxk="" >
%% WARNING %% directory /udd/lbesnard/Polychrony/TEST_INSTALL/Components missing
%% INFO %% Tree, BDD, Common not available
%% WARNING %% directory /udd/lbesnard/Polychrony/TEST_INSTALL/pKGUI missing
%% INFO %% standard Graphical User Interface not available
%% WARNING %% directory /udd/lbesnard/Polychrony/TEST_INSTALL/host missing
%% INFO %% host not available
%% WARNING %% directory /udd/lbesnard/Polychrony/TEST_INSTALL/utl missing
%% INFO %% utl not available
%% WARNING %% command /udd/lbesnard/Polychrony/TEST_INSTALL/setXKBuild missing or access denied
%% WARNING %% command /udd/lbesnard/Polychrony/TEST_INSTALL/setXKSave missing or access denied
>>>> use showConfig to display Polychrony variable configuration
%% WARNING %% directory /udd/lbesnard/Polychrony/TEST_INSTALL/Signal/obj missing
%% WARNING %% directory /udd/lbesnard/Polychrony/TEST_INSTALL/Signal/package missing
>>>> use signal -h to get Signal compiler command description
%% WARNING %% directory /usr/local/X11R6/LessTif/Motif2.1/lib missing
- I have installed Polychrony following the installation procedure. No
error has been detected. Then I have executed the command:
source INSTALLATION DIRECTORY/polychronyEnv
which gives access to the commands. But the command "polychrony" has no effect. The file polychrony.log
contains the following message:
Couldn't find or load essential class `java/lang/Object'
java.lang.NoClassDefFoundError java/lang/Object
The installation procedure has found java in your environment (using PATH shell variable),
but this java is not jdk. You have to find the jdk address and to change the definition of the
environment variable JDK_HOME in the file polychronyEnv with this address. Then execute again
source INSTALLATION DIRECTORY/polychronyEnv
to have access to the polychrony command.
NOTE: if the java command is, for example, in the /soft/jdk/bin/ directory, the JDK_HOME must be defined
by /soft/jdk
How to compile generated code
The Polychrony distribution provides some utilities to compile the generated code.
The command
genMake <TARGET LANGUAGE> FOO
with <TARGET LANGUAGE> ::= C | C++ | Java
is a makefile program generator for a Signal program (called FOO here). It generates a makefile
file that may be used to produce executable.
This utility assumes the availability of some softwares such as make command, compilers, linker...
- On UNIX® Systems
Linux, SunOs, MacOs), we suppose that
- the make command is available.
- the gcc/g++ compiler (Gnu C/C++ Compiler) is available. It is used when the target
language is C (resp. C++).
- the javac compiler is available. It is used when the target language is JAVA. This command
is provided with the JDK distribution.
- On Windows System, we suppose that
- the nmake command is available.
- the cl (Visual C/C++ Compiler) is available. It is used when the target language is C
(resp. C++).
- the javac compiler is available. It is used when the target language is java. This command
is provided with the JDK distribution.
nmake and cl are provided with the Microsoft®
Visual C++ environment.
The user can modify the generated file to adapt it to its own configuration.
Known bugs
- on Windows, how to call the batch compiler with parameters
You must use quotes like in the following example
signal -tra P.SIG "-par=P.PAR"
- genMake utility error on Windows
If you have installed Polychrony in a directory with blank character in the path (such as "Program Files"),
you must modify the generated makefile. Replace the line
INCLUDE_PK = /I $(SIGNALLIBC_EXPORT)
by
INCLUDE_PK = /I "$(SIGNALLIBC_EXPORT)"