Merge pull request #4 from greg-king5/filepath

Swapped the order of search paths.
This commit is contained in:
Oliver Schmidt
2013-05-06 07:46:06 -07:00
9 changed files with 95 additions and 49 deletions

View File

@@ -6,7 +6,7 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 2000-2010, Ullrich von Bassewitz */ /* (C) 2000-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */ /* Roemerstrasse 52 */
/* D-70794 Filderstadt */ /* D-70794 Filderstadt */
/* EMail: uz@cc65.org */ /* EMail: uz@cc65.org */
@@ -70,17 +70,23 @@ void InitIncludePaths (void)
/* Create the search path lists */ /* Create the search path lists */
IncSearchPath = NewSearchPath (); IncSearchPath = NewSearchPath ();
BinSearchPath = NewSearchPath (); BinSearchPath = NewSearchPath ();
}
/* Add some compiled in search paths if defined at compile time */
#ifdef CA65_INC
AddSearchPath (IncSearchPath, STRINGIZE (CA65_INC));
#endif void FinishIncludePaths (void)
/* Finish creating the include path search list. */
/* Add specific paths from the environment */ {
AddSearchPathFromEnv (IncSearchPath, "CA65_INC"); /* Add specific paths from the environment */
AddSearchPathFromEnv (IncSearchPath, "CA65_INC");
/* Add paths relative to a main directory defined in an env var */
AddSubSearchPathFromEnv (IncSearchPath, "CC65_HOME", "asminc"); /* Add paths relative to a main directory defined in an env. var. */
AddSubSearchPathFromEnv (IncSearchPath, "CC65_HOME", "asminc");
/* Add some compiled-in search paths if defined at compile time. */
#ifdef CA65_INC
AddSearchPath (IncSearchPath, STRINGIZE (CA65_INC));
#endif
} }

View File

@@ -6,7 +6,7 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 2000-2010, Ullrich von Bassewitz */ /* (C) 2000-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */ /* Roemerstrasse 52 */
/* D-70794 Filderstadt */ /* D-70794 Filderstadt */
/* EMail: uz@cc65.org */ /* EMail: uz@cc65.org */
@@ -66,6 +66,9 @@ void ForgetAllIncludePaths (void);
void InitIncludePaths (void); void InitIncludePaths (void);
/* Initialize the include path search list */ /* Initialize the include path search list */
void FinishIncludePaths (void);
/* Finish creating the include path search list. */
/* End of incpath.h */ /* End of incpath.h */

View File

@@ -5,7 +5,7 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 1998-2012, Ullrich von Bassewitz */ /* (C) 1998-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */ /* Roemerstrasse 52 */
/* D-70794 Filderstadt */ /* D-70794 Filderstadt */
/* EMail: uz@cc65.org */ /* EMail: uz@cc65.org */
@@ -1016,6 +1016,9 @@ int main (int argc, char* argv [])
exit (EXIT_FAILURE); exit (EXIT_FAILURE);
} }
/* Add the default include search paths. */
FinishIncludePaths ();
/* If no CPU given, use the default CPU for the target */ /* If no CPU given, use the default CPU for the target */
if (GetCPU () == CPU_UNKNOWN) { if (GetCPU () == CPU_UNKNOWN) {
if (Target != TGT_UNKNOWN) { if (Target != TGT_UNKNOWN) {

View File

@@ -6,7 +6,7 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 2000-2012, Ullrich von Bassewitz */ /* (C) 2000-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */ /* Roemerstrasse 52 */
/* D-70794 Filderstadt */ /* D-70794 Filderstadt */
/* EMail: uz@cc65.org */ /* EMail: uz@cc65.org */
@@ -70,18 +70,24 @@ void InitIncludePaths (void)
/* Create the search path lists */ /* Create the search path lists */
SysIncSearchPath = NewSearchPath (); SysIncSearchPath = NewSearchPath ();
UsrIncSearchPath = NewSearchPath (); UsrIncSearchPath = NewSearchPath ();
}
/* Add some compiled in search paths if defined at compile time */
#ifdef CC65_INC
AddSearchPath (SysIncSearchPath, STRINGIZE (CC65_INC));
#endif void FinishIncludePaths (void)
/* Finish creating the include path search lists. */
/* Add specific paths from the environment */ {
AddSearchPathFromEnv (SysIncSearchPath, "CC65_INC"); /* Add specific paths from the environment */
AddSearchPathFromEnv (UsrIncSearchPath, "CC65_INC"); AddSearchPathFromEnv (SysIncSearchPath, "CC65_INC");
AddSearchPathFromEnv (UsrIncSearchPath, "CC65_INC");
/* Add paths relative to a main directory defined in an env var */
AddSubSearchPathFromEnv (SysIncSearchPath, "CC65_HOME", "include"); /* Add paths relative to a main directory defined in an env. var. */
AddSubSearchPathFromEnv (SysIncSearchPath, "CC65_HOME", "include");
/* Add some compiled-in search paths if defined at compile time. */
#ifdef CC65_INC
AddSearchPath (SysIncSearchPath, STRINGIZE (CC65_INC));
#endif
} }

View File

@@ -6,7 +6,7 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 2000-2010, Ullrich von Bassewitz */ /* (C) 2000-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */ /* Roemerstrasse 52 */
/* D-70794 Filderstadt */ /* D-70794 Filderstadt */
/* EMail: uz@cc65.org */ /* EMail: uz@cc65.org */
@@ -66,6 +66,9 @@ void ForgetAllIncludePaths (void);
void InitIncludePaths (void); void InitIncludePaths (void);
/* Initialize the include path search list */ /* Initialize the include path search list */
void FinishIncludePaths (void);
/* Finish creating the include path search lists. */
/* End of incpath.h */ /* End of incpath.h */

View File

@@ -6,7 +6,7 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 2000-2012, Ullrich von Bassewitz */ /* (C) 2000-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */ /* Roemerstrasse 52 */
/* D-70794 Filderstadt */ /* D-70794 Filderstadt */
/* EMail: uz@cc65.org */ /* EMail: uz@cc65.org */
@@ -957,6 +957,9 @@ int main (int argc, char* argv[])
AbEnd ("No input files"); AbEnd ("No input files");
} }
/* Add the default include search paths. */
FinishIncludePaths ();
/* Create the output file name if it was not explicitly given */ /* Create the output file name if it was not explicitly given */
MakeDefaultOutputName (InputFile); MakeDefaultOutputName (InputFile);

View File

@@ -6,7 +6,7 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 2003-2010, Ullrich von Bassewitz */ /* (C) 2003-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */ /* Roemerstrasse 52 */
/* D-70794 Filderstadt */ /* D-70794 Filderstadt */
/* EMail: uz@cc65.org */ /* EMail: uz@cc65.org */
@@ -48,6 +48,10 @@ SearchPath* LibSearchPath; /* Library path */
SearchPath* ObjSearchPath; /* Object file path */ SearchPath* ObjSearchPath; /* Object file path */
SearchPath* CfgSearchPath; /* Config file path */ SearchPath* CfgSearchPath; /* Config file path */
SearchPath* LibDefaultPath; /* Default Library path */
SearchPath* ObjDefaultPath; /* Default Object file path */
SearchPath* CfgDefaultPath; /* Default Config file path */
/*****************************************************************************/ /*****************************************************************************/
@@ -64,31 +68,35 @@ void InitSearchPaths (void)
ObjSearchPath = NewSearchPath (); ObjSearchPath = NewSearchPath ();
CfgSearchPath = NewSearchPath (); CfgSearchPath = NewSearchPath ();
LibDefaultPath = NewSearchPath ();
ObjDefaultPath = NewSearchPath ();
CfgDefaultPath = NewSearchPath ();
/* Always search all stuff in the current directory */ /* Always search all stuff in the current directory */
AddSearchPath (LibSearchPath, ""); AddSearchPath (LibSearchPath, "");
AddSearchPath (ObjSearchPath, ""); AddSearchPath (ObjSearchPath, "");
AddSearchPath (CfgSearchPath, ""); AddSearchPath (CfgSearchPath, "");
/* Add some compiled in search paths if defined at compile time */ /* Add specific paths from the environment. */
AddSearchPathFromEnv (LibDefaultPath, "LD65_LIB");
AddSearchPathFromEnv (ObjDefaultPath, "LD65_OBJ");
AddSearchPathFromEnv (CfgDefaultPath, "LD65_CFG");
/* Add paths relative to a main directory defined in an env. var. */
AddSubSearchPathFromEnv (LibDefaultPath, "CC65_HOME", "lib");
AddSubSearchPathFromEnv (ObjDefaultPath, "CC65_HOME", "obj");
AddSubSearchPathFromEnv (CfgDefaultPath, "CC65_HOME", "cfg");
/* Add some compiled-in search paths if defined at compile time. */
#if defined(LD65_LIB) #if defined(LD65_LIB)
AddSearchPath (LibSearchPath, STRINGIZE (LD65_LIB)); AddSearchPath (LibDefaultPath, STRINGIZE (LD65_LIB));
#endif #endif
#if defined(LD65_OBJ) #if defined(LD65_OBJ)
AddSearchPath (ObjSearchPath, STRINGIZE (LD65_OBJ)); AddSearchPath (ObjDefaultPath, STRINGIZE (LD65_OBJ));
#endif #endif
#if defined(LD65_CFG) #if defined(LD65_CFG)
AddSearchPath (CfgSearchPath, STRINGIZE (LD65_CFG)); AddSearchPath (CfgDefaultPath, STRINGIZE (LD65_CFG));
#endif #endif
/* Add specific paths from the environment */
AddSearchPathFromEnv (LibSearchPath, "LD65_LIB");
AddSearchPathFromEnv (ObjSearchPath, "LD65_OBJ");
AddSearchPathFromEnv (CfgSearchPath, "LD65_CFG");
/* Add paths relative to a main directory defined in an env var */
AddSubSearchPathFromEnv (LibSearchPath, "CC65_HOME", "lib");
AddSubSearchPathFromEnv (ObjSearchPath, "CC65_HOME", "obj");
AddSubSearchPathFromEnv (CfgSearchPath, "CC65_HOME", "cfg");
} }

View File

@@ -6,7 +6,7 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 2003-2010, Ullrich von Bassewitz */ /* (C) 2003-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */ /* Roemerstrasse 52 */
/* D-70794 Filderstadt */ /* D-70794 Filderstadt */
/* EMail: uz@cc65.org */ /* EMail: uz@cc65.org */
@@ -53,6 +53,10 @@ extern SearchPath* LibSearchPath; /* Library path */
extern SearchPath* ObjSearchPath; /* Object file path */ extern SearchPath* ObjSearchPath; /* Object file path */
extern SearchPath* CfgSearchPath; /* Config file path */ extern SearchPath* CfgSearchPath; /* Config file path */
extern SearchPath* LibDefaultPath; /* Default Library path */
extern SearchPath* ObjDefaultPath; /* Default Object file path */
extern SearchPath* CfgDefaultPath; /* Default Config file path */
/*****************************************************************************/ /*****************************************************************************/

View File

@@ -6,7 +6,7 @@
/* */ /* */
/* */ /* */
/* */ /* */
/* (C) 1998-2010, Ullrich von Bassewitz */ /* (C) 1998-2013, Ullrich von Bassewitz */
/* Roemerstrasse 52 */ /* Roemerstrasse 52 */
/* D-70794 Filderstadt */ /* D-70794 Filderstadt */
/* EMail: uz@cc65.org */ /* EMail: uz@cc65.org */
@@ -178,10 +178,16 @@ static void LinkFile (const char* Name, FILETYPE Type)
case FILETYPE_LIB: case FILETYPE_LIB:
PathName = SearchFile (LibSearchPath, Name); PathName = SearchFile (LibSearchPath, Name);
if (PathName == 0) {
PathName = SearchFile (LibDefaultPath, Name);
}
break; break;
case FILETYPE_OBJ: case FILETYPE_OBJ:
PathName = SearchFile (ObjSearchPath, Name); PathName = SearchFile (ObjSearchPath, Name);
if (PathName == 0) {
PathName = SearchFile (ObjDefaultPath, Name);
}
break; break;
default: default:
@@ -295,13 +301,15 @@ static void OptConfig (const char* Opt attribute ((unused)), const char* Arg)
} }
/* Search for the file */ /* Search for the file */
PathName = SearchFile (CfgSearchPath, Arg); PathName = SearchFile (CfgSearchPath, Arg);
if (PathName == 0) {
PathName = SearchFile (CfgDefaultPath, Arg);
}
if (PathName == 0) { if (PathName == 0) {
Error ("Cannot find config file `%s'", Arg); Error ("Cannot find config file `%s'", Arg);
} else {
CfgSetName (PathName);
} }
/* Read the config */ /* Read the config */
CfgSetName (PathName);
CfgRead (); CfgRead ();
} }
@@ -487,6 +495,9 @@ static void OptTarget (const char* Opt attribute ((unused)), const char* Arg)
/* Search for the file */ /* Search for the file */
PathName = SearchFile (CfgSearchPath, SB_GetBuf (&FileName)); PathName = SearchFile (CfgSearchPath, SB_GetBuf (&FileName));
if (PathName == 0) {
PathName = SearchFile (CfgDefaultPath, SB_GetBuf (&FileName));
}
if (PathName == 0) { if (PathName == 0) {
Error ("Cannot find config file `%s'", SB_GetBuf (&FileName)); Error ("Cannot find config file `%s'", SB_GetBuf (&FileName));
} }
@@ -715,4 +726,3 @@ int main (int argc, char* argv [])