[GRASS5] Compiling my source

Hi,
while I don't have any problem compiling Grass 5.4.0 sources, when it's the turn to compile my little module there are some strange error messages that I never encountered in Grass 4.x and 5.0b.

Let's make an example: I am in a directory where there are all my .c and .h files, along with the Gmakefile. With older grass 5.0 when I type gmake5 everything goes ok. But with grass5.4 when I type gmake54 I have the message:
bash: gmake54: command not found

So I realize that the command is in the build directory, so I type /home/grass-build/gmake54
and now I have:

make: Entering directory '/home/damiano/mysrc/rr044'
make: *** no rule to make target 'dir'. Stop.
make: Leaving directory '/home/damiano/mysrc/rr044'

I cannot understand why it does not accept the Gmakefile present in rr044/ !!!
Of course my aim is to run it and debug it in the same folder. I do not want that my executable will join immediately the folders of the binaries in my Linux Mandrake 10 system!
Can anyone be so kind to help me, please?
Thanks,
Damiano

damiano.triglione@polimi.it

Damiano Triglione wrote:

while I don't have any problem compiling Grass 5.4.0 sources, when it's the
turn to compile my little module there are some strange error messages that
I never encountered in Grass 4.x and 5.0b.

Let's make an example: I am in a directory where there are all my .c and .h
files, along with the Gmakefile. With older grass 5.0 when I type gmake5
everything goes ok. But with grass5.4 when I type gmake54 I have the
message:
bash: gmake54: command not found

So I realize that the command is in the build directory, so I type
/home/grass-build/gmake54
and now I have:

make: Entering directory '/home/damiano/mysrc/rr044'
make: *** no rule to make target 'dir'. Stop.
make: Leaving directory '/home/damiano/mysrc/rr044'

I cannot understand why it does not accept the Gmakefile present in rr044/
!!!

The gmake54 script which is present when you use --disable-gmake
(which is the default for 5.4.0) doesn't use Gmakefiles. It uses the
makefiles which are built by "make makefiles" (which is the first step
in the build process).

Essentially, it won't work with anything which is outside of the GRASS
source tree. If you want to build add-on modules, you can either:

a) use "configure --enable-gmake ...", to use the old build system,

b) place your source code inside the GRASS source tree (then,
"make makefiles" will automatically build a makefile from your
Gmakefile), or

c) write your own Makefile which doesn't rely upon the GRASS build
system, and just run "make".

--
Glynn Clements <glynn@gclements.plus.com>