From: uz Date: Thu, 24 Sep 2009 14:49:52 +0000 (+0000) Subject: Added search paths similar to that of the linker and compiler. X-Git-Tag: V2.13.0rc1~39 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=6da6da78ae64dbed81e8d452441976393e314f8c;p=cc65 Added search paths similar to that of the linker and compiler. git-svn-id: svn://svn.cc65.org/cc65/trunk@4217 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/doc/ca65.sgml b/doc/ca65.sgml index eb09a2735..0aa1b33cc 100644 --- a/doc/ca65.sgml +++ b/doc/ca65.sgml @@ -267,7 +267,8 @@ Here is a description of all the command line options: Name a directory which is searched for include files. The option may be used more than once to specify more than one directory to search. The current directory is always searched first before considering any - additional directories. + additional directories. See also the section about . -U, --auto-import @@ -299,6 +300,21 @@ Here is a description of all the command line options:

+ +Search paths

+ +Include files are searched in the following places: + + +The current directory. +The value of the environment variable A subdirectory named Any directory added with the + + + Input format

Assembler syntax

diff --git a/src/ca65/incpath.c b/src/ca65/incpath.c index 2abd99f62..124e4b20b 100644 --- a/src/ca65/incpath.c +++ b/src/ca65/incpath.c @@ -6,10 +6,10 @@ /* */ /* */ /* */ -/* (C) 2000-2003 Ullrich von Bassewitz */ -/* Römerstrasse 52 */ -/* D-70794 Filderstadt */ -/* EMail: uz@cc65.org */ +/* (C) 2000-2009, Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ /* */ /* */ /* This software is provided 'as-is', without any expressed or implied */ @@ -76,3 +76,23 @@ char* FindInclude (const char* Name) +void InitIncludePaths (void) +/* Initialize the include path search list */ +{ + /* Add some standard paths to the include search path */ + AddSearchPath ("", INC_STD); /* Current directory */ + + /* Add some compiled in search paths if defined at compile time */ +#ifdef CA65_INC + AddSearchPath (CA65_INC, INC_STD); +#endif + + /* Add specific paths from the environment */ + AddSearchPathFromEnv ("CA65_INC", INC_STD); + + /* Add paths relative to a main directory defined in an env var */ + AddSubSearchPathFromEnv ("CC65_HOME", "asminc", INC_STD); +} + + + diff --git a/src/ca65/incpath.h b/src/ca65/incpath.h index a2b71e553..41891c9b8 100644 --- a/src/ca65/incpath.h +++ b/src/ca65/incpath.h @@ -6,10 +6,10 @@ /* */ /* */ /* */ -/* (C) 2000-2003 Ullrich von Bassewitz */ -/* Römerstrasse 52 */ -/* D-70794 Filderstadt */ -/* EMail: uz@cc65.org */ +/* (C) 2000-2009, Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ /* */ /* */ /* This software is provided 'as-is', without any expressed or implied */ @@ -52,6 +52,9 @@ char* FindInclude (const char* Name); * the complete path, if found, return 0 otherwise. */ +void InitIncludePaths (void); +/* Initialize the include path search list */ + /* End of incpath.h */ diff --git a/src/ca65/main.c b/src/ca65/main.c index 4b801c6ef..faec11ecf 100644 --- a/src/ca65/main.c +++ b/src/ca65/main.c @@ -796,6 +796,9 @@ int main (int argc, char* argv []) /* Initialize the cmdline module */ InitCmdLine (&argc, &argv, "ca65"); + /* Initialize the include search paths */ + InitIncludePaths (); + /* Enter the base lexical level. We must do that here, since we may * define symbols using -D. */ diff --git a/src/ca65/make/gcc.mak b/src/ca65/make/gcc.mak index 6030e9de3..9a8ea79ba 100644 --- a/src/ca65/make/gcc.mak +++ b/src/ca65/make/gcc.mak @@ -10,7 +10,12 @@ EXE = ca65 # Library dir COMMON = ../common -CFLAGS = -g -O2 -Wall -W -std=c89 -I$(COMMON) +# Several search paths. You may redefine these on the command line +CA65_INC = \"/usr/lib/cc65/asminc/\" + +CFLAGS = -g -O2 -Wall -W -std=c89 +CFLAGS += -I$(COMMON) +CFLAGS += -DCA65_INC=$(CA65_INC) CC = gcc EBIND = emxbind LDFLAGS =