This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: about makefile
- From: Nick Garnett <nickg at ecoscentric dot com>
- To: =?gb2312?b?1cUgwcE=?= <johnsonest at hotmail dot com>
- Cc: ecos-discuss at sources dot redhat dot com
- Date: 26 Sep 2002 18:00:28 +0100
- Subject: [ECOS] Re: about makefile
- References: <F835UxbYSwFtKDj5iq400006dce@hotmail.com>
ÕÅ ÁÁ <johnsonest@hotmail.com> writes:
> Dear nickg,
> i have difficulty in orgnizing my header file and source file with
> makefile:
> I create two folder ,named after "include" and "src" in current directory:
> >ls
> include src test.c
>
> in test.c, i want to call codes in "include" and "src" folder:
>
> #include <stdio.h>
> #include "cs.h" //in include folder
>
> int main() {
> ....
> ...
> call fucntions in file "cs.c" in folder "src"
> ...
> }
>
> to compile this
> my makefile is:
>
> HEADER_DIR = include
> test: test.o cs.o gcc -o test test.o cs.o
> test.o: test.c cs.h gcc -c test.c cs.o : cs.c cs.h
> gcc -c cs.c -I$(SOURCE_DIR) clean:
> -rm *.o
>
> but:
> >make
> make: *** No rule to make target `cs.c', needed by `cs.o'. Stop.
> in fact,my cs.c is a set of functions called each other,no entry function.
>
> i am a newcomer about makefile,could you check my makefile ,tell me
> where error occur?
>
This is not really relevant to eCos, and it is not my job to teach you
how to use make, but I'll give you a few pointers:
Make does not know that you want it to look into the src subdirectory
for cs.c. You need to tell it, either by referring to src/cs.c
explicily in the makefile, or by using the VPATH mechanism. Find and
read the GNU make documentation for details.
--
Nick Garnett - eCos Kernel Architect
http://www.eCosCentric.com/
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss