[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2. General information about how RHIDE works

In this section I will give you some comments about the concept of RHIDE. RHIDE works with the GNU compilers. As a result of this, most of the options are fixed and they are mostly also specific only for this compiler. If I speak about compilers, I mean GCC, which calls the right compilers for you. (`cpp' for preprocessing your input files, `cc1' for compiling C programs, `cc1plus' for compiling C++ programs and `as' for compiling assembler files and so on)

Selecting the right compiler for a specific file is done by RHIDE in the same way as GCC does it. It looks for the extension of the file and determines the language of this file.

2.1 Known suffixes  
2.2 Syntax of arguments  
2.3 Running under Windows 95  
2.4 Running under OS/2  
2.5 Running under Windows NT  
2.6 Running under GNU/Linux  
2.7 General use of RHIDE  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.1 Known suffixes

The list of the known suffixes is taken from GCC. Remember the fact, that GCC and RHIDE check the suffixes in a case sensitive way especially when running under Windows 95 see section 2.3 Running under Windows 95.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.2 Syntax of arguments

In RHIDE you can specify some arguments to other programs. These arguments must be a space separated list of strings. If you want to have one or more spaces as part of an argument, you have to enclose the whole argument in single or double quotes.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.3 Running under Windows 95

With DJGPP 2.01 were many bugs fixed, which caused problems under Windows 95 with the long (and case sensitive) filenames. Now all filenames are shown in lower case, except they contain characters with different case. That means, all normal 8+3 DOS filenames, which are normally reported in Windows 95 in upper cases, are automatically converted to lower case. For more information about filename conversion look at the libc reference.

If you really need the filenames exactly as they are reported by the OS, you can use the -c switch see section 1.5 Getting started.

You can also run more than one instance of RHIDE at once, in several DOS-boxes, because RHIDE creates and uses its own temp directory every time it starts to disable conflicts, when running multiple compilers at the same time. This is done by creating a directory in the directory pointed at by the environment variables %TMPDIR%, %TEMP% or %TMP%, in that order, until one of them exists. If none of them exists, the current directory is assumed. Then RHIDE puts the value of this directory into the environment variable %TMPDIR%. After leaving RHIDE this directory will be removed, if it is empty.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.4 Running under OS/2

Because I have no access to OS/2, I cannot say anything about it. But some people said that they run RHIDE under OS/2 successfully, but there must be the exclusive mouse access to the DOS window disabled.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.5 Running under Windows NT

I haven't access to NT so I cannot say something about running RHIDE on this OS.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.6 Running under GNU/Linux

Since RHIDE is now available also for GNU/Linux here some hints. In general you will get the best results when you have installed RHIDE as a setuid root program. I know, this might be a security problem but I have tried to make it as secure as possible. After getting acces to the screen and the keyboard RHIDE will switch back to your normal rights and does not use root rights any more. It does not write any data or modify any file on disk with root rights (except you are running as root of course).

The reason for this is the rudimentary support for fast access to the screen and the totally hided acces to the keyboard in the Linux kernel. Additionally when you want to use the dual monitor debugging feature of RHIDE this is also needed, because RHIDE needs in that case access to the ports of your monochrome video card.

Running RHIDE under X-Window is not full supported (but it is possible). There are several reasons for this. The first is, that RHIDE uses in that case only terminal functions for input and output. That means it depends completetly on your terminfo database and these are (at least for me) in some cases totally wrong. You can see this mostly that RHIDE does not handle correct the keyboard. Other programs which use ncurses know this also and have there own hardcaded patches but I do not want to do so.

To fix the keyboard conflicts when running in a xterm, I distribute little modified terminfo file `/usr/local/share/rhide/xterm-rhide' which you can place in `/usr/lib/terminfo/x' or when you have no root access you can place it also in `$HOME/.terminfo/x'. And then to use this file simply set the environment variable to this new terminal with
 
  export TERM=xterm-rhide
before running RHIDE in the xterm.

An other alternative is to run RHIDE in a rxvt terminal but there you have to set also explicitely the TERM variable, because it is set mostly to xterm-color.
 
  export TERM=rxvt


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.7 General use of RHIDE

2.7.1 Creating a program  
2.7.2 Creating a library  
2.7.3 Saving/Loading the options  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.7.1 Creating a program

For creating a program, RHIDE allows you to define multiple source files which should be compiled and linked to your final program. This is done by creating a project. In this project you insert your source files (and not all the include files).

After a source file (which is inserted in your project) compiled at least once, RHIDE knows about all dependencies of this file, so this file will be compiled again only, if one of the include files have changed.

2.7.1.1 Creating a program without a project  


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.7.1.1 Creating a program without a project

Because of many requests of users I made RHIDE to work also without using a project. This may be good, if you have a single file, but if your program should be build from more than one file I suggest you to use a project.

If you have only one editor window opened, the name of the resulting program is taken from the name of the source file by removing the suffix and on DJGPP appending `.exe'.

If you have more than one files opened, I saw no other way for determining the name of the produced program, than naming it `aout' (on DJGPP `aout.exe').


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.7.2 Creating a library

You can also create libraries (a collection of object files, which can be linked with other programs) with RHIDE. The way for doing this is very simple. Because RHIDE knows about the meaning of file suffixes, you can change the name of the main target see section 3.8.7 Main targetname to have a suffix `.a' and that's all. Now RHIDE will run `ar' instead of linking.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

2.7.3 Saving/Loading the options

RHIDE supports two different ways for saving the options which you have customized.

The first one (which I prefer) is the use of the so called default project. This is the project `rhide.gpr' and must be located in the same directory where `rhide.exe' is. To create or modify this default project change to that directory (normally %DJDIR%/bin) and type there

 
rhide rhide

Now change any options you want and exit RHIDE. From now on these options are used for any newly created project or when running RHIDE without a project.

The second way is to save your options to a project file see section 3.9.7 Save options or to load them from any existing project file see section 3.9.8 Load options.


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Robert Hoehne on February, 16 2003 using texi2html