Including 3rd party library headers?

Nick Withers nick.withers at anu.edu.au
Thu Jan 30 13:23:26 UTC 2014


On Thu, 2014-01-30 at 23:19 +1300, James Fitzsimons wrote:
> I tried CFLAGS as suggested and it seems to be completely ignored.

Hrrrm... I wonder if it's a 4.10 vs 4.11 thing...? Can't see anything
obviously wrong with yours, but not an expert and it's too late at night
for me to go checking out 4.10 and whatnot :-P

I've attached the (old) Makefile I was once using with Makefile.inc et
al., with 4.11 / head (still works) which *does* add the CFLAGS (the
EXEEXT stuff and no MANAGERS might be a problem with 4.10).

P.S., I feel safe assuming that "make" on Ubuntu 13.10 is GNU make...?

> My application Makefile now looks like this:
> 
> 
> PGM=${ARCH}/rtems-hello.exe
> 
> 
> # optional managers required
> MANAGERS=all
> 
> 
> # C source names
> CSRCS = rtems-hello.c
> COBJS = $(CSRCS:%.c=${ARCH}/%.o)
> CFLAGS += -I/home/james/Projects/development/motorobots/include
> 
> 
> MOTOROBOTS_LIBS = /opt/motorobots/68332/lib
> #LD_PATHS += 
> LD_LIBS += $(MOTOROBOTS_LIBS)/liblcd.a  $(MOTOROBOTS_LIBS)/libled.a
> 
> 
> include $(RTEMS_MAKEFILE_PATH)/Makefile.inc
> include $(RTEMS_CUSTOM)
> include $(PROJECT_ROOT)/make/leaf.cfg
> 
> 
> OBJS= $(COBJS) $(CXXOBJS) $(ASOBJS)
> 
> 
> all:    ${ARCH} $(PGM)
> 
> 
> $(PGM): $(OBJS) ${LINK_FILES}
> $(make-exe)
> 
> 
> and running make looks like:
> 
> 
> hello$ make
> test -d o-optimize || mkdir o-optimize
> m68k-rtems4.10-gcc --pipe
> -B/home/james/Projects/development/rtems/rtems-mrm332/m68k-rtems4.10/mrm332/lib/ -specs bsp_specs -qrtems   -g -Wall  -O2 -g -fomit-frame-pointer -g    -mcpu=cpu32     -c   -o o-optimize/rtems-hello.o rtems-hello.c
> rtems-hello.c:6:27: error: 68332/mrm/led.h: No such file or directory
> rtems-hello.c:7:27: error: 68332/mrm/lcd.h: No such file or directory
> ....
> 
> 
> 
> 
> As you can see the include path doesn't appear in the gcc command.
> 
> 
> I've read the make/README and can't see anything relavant in there. Am
> I missing something really obvious here?
> 
> 
> Thanks for any help you can provide!
> James
> 
> 
> On 30 January 2014 13:38, James Fitzsimons
> <james.fitzsimons at gmail.com> wrote:
>         Thanks very much guys,
>         
>         
>         I'm thought I'd tried CFLAGS, but I obviously didn't have
>         something quite right so I'll give it another shot.
>         
>         
>         I'll definitely look into Eclipse - I've used it before for
>         C/C++ stuff and found it excellent. I'm trying to start out
>         pretty vanilla with RTEMS just so I get a really good handle
>         on how the whole build process works (there are a LOT of
>         makefiles to understand) as I've found with other tools that
>         an IDE can often make things nice and easy until it goes
>         wrong, and if you don't understand what it's doing under the
>         hood you are all of a sudden in very deep water.
>         
>         
>         Cheers!
>         James
>         
>         
>         On 30 January 2014 12:53, Simon Williams
>         <williamssimonp at gmail.com> wrote:
>                 Ah, -I and CFLAGS it is then.  That'll teach me to
>                 read posts properly and not just skim them! :-)
>                 
>                 I started using Eclipse for Java, but I moved to using
>                 Netbeans as I prefer it, but Eclipse with CDT is a
>                 grest C/C++ IDE and the RTEMS plug in makes RTEMS
>                 development more productive than vi. I don't really
>                 know of an alternative iif you want an IDE for RTEMS,
>                 but that may be just because I've not looked. 
>                 
>                 Regards
>                 
>                 Simon
>                 
>                 On 29 Jan 2014 23:36, "Nick Withers"
>                 <nick.withers at anu.edu.au> wrote:
>                         On Wed, 2014-01-29 at 23:31 +0000, Simon
>                         Williams wrote:
>                         > Wouldn't thst be -L for the lbrary path? The
>                         -l option is usef to
>                         > specify a library.
>                         >
>                         > Also, linker flags are usually in LDFLAGS,
>                         CFLAGS is for compiler
>                         > flags. It does of course depend on your
>                         Makefile.
>                         
>                         It's include paths he's after, which are for
>                         the compiler.
>                         
>                         > I would recommend Eclipse. It won't do
>                         everything for you, but it can
>                         > help by pointing the way!
>                         
>                         I've heard a lot of good things about Eclipse.
>                         I've got a personal peeve
>                         against Java and that's really all that's kept
>                         me from trying it!
>                         
>                         > Regards
>                         >
>                         > Simon
>                         >
>                         > On 29 Jan 2014 22:18, "Nick Withers"
>                         <nick.withers at anu.edu.au> wrote:
>                         >         On Wed, 2014-01-29 at 22:29 +1300,
>                         James Fitzsimons wrote:
>                         >         > Thanks Andrei,
>                         >         >
>                         >         >
>                         >         > I'm using a very plain vanilla
>                         environment at the moment.
>                         >         Ubuntu 13.10
>                         >         > with tool chain built using rtems
>                         source builder.
>                         >         >
>                         >         >
>                         >         > I'm using the template makefile
>                         for my test application, and
>                         >         am just
>                         >         > running make directly from bash.
>                         >         >
>                         >         >
>                         >         > No IDE or fancy build environment
>                         yet!
>                         >
>                         >         I'd've said the RTEMS'provided
>                         Makefiles (there are a number
>                         >         of them,
>                         >         chained together) are pretty
>                         fancy... But then, I have trouble
>                         >         with just
>                         >         one Makefile :-P
>                         >
>                         >         Anyway, try:
>                         >                 CFLAGS+=-I/bam/headers
>                         >
>                         >         > Cheers,
>                         >         > James
>                         >         >
>                         >         >
>                         >         > On 29 January 2014 17:01, Andrei
>                         Chichak <groups at chichak.ca>
>                         >         wrote:
>                         >         >         I believe what Sebastian
>                         is referring to is the
>                         >         environment
>                         >         >         that you are using for
>                         your compiles. In my case, I
>                         >         am using a
>                         >         >         Mac and Eclipse, I set
>                         <C/C++ Build><Settings><Tool
>                         >         >         Settings><RTEMS C
>                         Compiler><Preprocessor><Include
>                         >         Paths (-I)>.
>                         >         >
>                         >         >         Your milage will vary, but
>                         if you tell us what you
>                         >         are
>                         >         >         driving, there may be
>                         someone here that can help.
>                         >         >
>                         >         >         Andrei
>                         >         >
>                         >         >
>                         >         >         On 2014-January-28, at
>                         2:11 PM, James Fitzsimons
>                         >         >
>                         <james.fitzsimons at gmail.com> wrote:
>                         >         >
>                         >         >         > Hi Sebastian,
>                         >         >         >
>                         >         >         > Thanks for your reply.
>                         >         >         >
>                         >         >         > Ideally I was hoping to
>                         us the -I option to
>                         >         specify the
>                         >         >         header file location, I
>                         just can't quite figure out
>                         >         where to
>                         >         >         add that into the RTEMS
>                         makefile structure. Looking
>                         >         at the
>                         >         >         make/README I can see a
>                         good example of how to link
>                         >         in other
>                         >         >         libraries using LD_LIBS,
>                         but there's nothing about
>                         >         including
>                         >         >         other header files.
>                         >         >         >
>                         >         >         > Apologies if I am
>                         missing something obvious!

-------------- next part --------------
A non-text attachment was scrubbed...
Name: Makefile
Type: text/x-makefile
Size: 2989 bytes
Desc: not available
URL: <http://lists.rtems.org/pipermail/users/attachments/20140131/a159019e/attachment-0001.bin>


More information about the users mailing list