[GRASS-dev] Building a new module for GRASS6.2.3

roberto caselli roberto.caselli at yahoo.it
Fri Mar 28 16:34:31 EDT 2008


These are the first lines of r.example main.c (that I renamed in main.cc)

#include <stdio.h>    
#include <stdlib.h>
#include <string.h>

extern "C"
{
 #include <grass/gis.h>
 #include <grass/glocale.h>
}    

extern CELL f_c(CELL);
extern FCELL f_f(FCELL);
extern DCELL f_d(DCELL);
  ....

And this is its makefile I edit as you told me to do:

MODULE_TOPDIR = ../..
PGM = r.example

LIBES = $(GISLIB)
DEPENDENCIES = $(GISDEP)
        
MOD_OBJS := $(subst .cc,.o,$(wildcard *.cc))     
     
include $(MODULE_TOPDIR)/include/Make/Module.make
 
default: cmd
     
Then I typed make and here the message:

make: *** No rule to make target `OBJ.i686-pc-linux-gnu/main.o', needed by `/home/roberto/grass/grass-6.2.3/dist.i686-pc-linux-gnu/bin/r.example'.  Stop.
roberto a roberto-laptop:~/grass/grass-6.2.3/raster/r.example$ 


Glynn Clements <glynn a gclements.plus.com> ha scritto: 
roberto caselli wrote:

> Thank you very much! How can I edit the raster example to have a c++ source code (.cc extension)?
> I should edit something in the makefile, but I don't how to do. Someone could help me?

Add the following line before including the *.make files (e.g. Module.make):

 MOD_OBJS := $(subst .cc,.o,$(wildcard *.cc))

By default, MOD_OBJS is determined based upon the .c files in the
directory.

Rules.make already includes pattern rules for compiling .cc and .cpp
files.

Note that the GRASS headers don't make allowances for use in C++ code,
so you need to use e.g.:

 extern "C" {
 #include 
 }

At some point, we should probably change Rules.make to automatically
deal with C++ files (.cc and .cpp extensions; maybe .cxx as well).

-- 
Glynn Clements 


       
---------------------------------
Scopri il  Blog di Yahoo! Mail: trucchi, novità, consigli... e la tua opinione!
-------------- parte successiva --------------
Un allegato HTML ? stato rimosso...
URL: http://lists.osgeo.org/pipermail/grass-dev/attachments/20080328/d449bc82/attachment.html


More information about the grass-dev mailing list