Skip to content
Snippets Groups Projects
Commit 07158a7f authored by Freddie Chopin's avatar Freddie Chopin
Browse files

Add another scripts search path for Windows builds


Add single "scripts" folder to search path for Windows OpenOCD builds
that don't use cygwin
bin/openocd.exe
scripts/interface/dummy.cfg
scripts/target/at91eb40a.cfg

Do some refactoring of current code (thx to Andreas).

Change-Id: Idbb08d1368b06f25da44f4f9ab1511db992b1724
Signed-off-by: default avatarFreddie Chopin <freddie.chopin@gmail.com>
Signed-off-by: default avatarAndreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/785
Tested-by: jenkins
parent 73d87c62
Branches
Tags
No related merge requests found
......@@ -55,43 +55,52 @@ int configuration_output_handler(struct command_context *context, const char *li
static void add_default_dirs(void)
{
#ifdef _WIN32
/* Add the parent of the directory where openocd.exe resides to the
* config script search path.
* Directory layout:
* bin\openocd.exe
* lib\openocd
*/
{
char strExePath[MAX_PATH];
char *path;
GetModuleFileName(NULL, strExePath, MAX_PATH);
/* Either this code will *always* work or it will SEGFAULT giving
* excellent information on the culprit.
/* Strip executable file name, leaving path */
*strrchr(strExePath, '\\') = '\0';
/* Convert path separators to UNIX style, should work on Windows also. */
for (char *p = strExePath; *p; p++) {
if (*p == '\\')
*p = '/';
}
/* Add the parent of the directory where openocd.exe resides to the
* config script search path.
*
* bin/openocd.exe
* interface/dummy.cfg
* target/at91eb40a.cfg
*/
*strrchr(strExePath, '\\') = 0;
strcat(strExePath, "\\..");
add_script_search_dir(strExePath);
path = alloc_printf("%s%s", strExePath, "/..");
if (path) {
add_script_search_dir(path);
free(path);
}
/*
* Add support for the default (as of 20091118) layout when
* using autotools and cygwin/MinGW to build native binary.
* Path separator is converted to UNIX style so that MinGW is
* pleased.
/* Add support for the directory layout resulting from a 'make install'.
*
* bin/openocd.exe
* share/openocd/scripts/interface/dummy.cfg
* share/openocd/scripts/target/at91eb40a.cfg
*/
{
char strExePath[MAX_PATH];
char *p;
GetModuleFileName(NULL, strExePath, MAX_PATH);
*strrchr(strExePath, '\\') = 0;
strcat(strExePath, "/../share/"PACKAGE "/scripts");
for (p = strExePath; *p; p++) {
if (*p == '\\')
*p = '/';
path = alloc_printf("%s%s", strExePath, "/../share/" PACKAGE "/scripts");
if (path) {
add_script_search_dir(path);
free(path);
}
add_script_search_dir(strExePath);
/* Add single "scripts" folder to search path for Windows OpenOCD builds that don't use cygwin
*
* bin/openocd.exe
* scripts/interface/dummy.cfg
* scripts/target/at91eb40a.cfg
*/
path = alloc_printf("%s%s", strExePath, "/../scripts");
if (path) {
add_script_search_dir(path);
free(path);
}
#else
/*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment