tweak impldir.

This commit is contained in:
SANO Masatoshi 2017-07-03 07:22:30 +09:00
parent fdac5f6d23
commit 64023a8638
12 changed files with 44 additions and 28 deletions

View file

@ -10,7 +10,7 @@ char** cmd_run_abcl(int argc,char** argv,struct sub_command* cmd) {
/*[binpath for abcl] --noinform --noinit --nosystem --eval init.lisp
[terminating NULL] that total 7 are default. */
int i;
char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL);
char* impl_path=impldir(arch,os,impl, version);
char* help=get_opt("help",0);
char* script=get_opt("script",0);
char* image=get_opt("image",0);
@ -20,7 +20,7 @@ char** cmd_run_abcl(int argc,char** argv,struct sub_command* cmd) {
s(arch),s(os);
ret=conss((strcmp("system",version)==0)?truename(which("abcl")):cat(impl_path,SLASH,"abcl",EXE_EXTENTION,NULL),ret);
ret=conss((strcmp("system",version)==0)?truename(which("abcl")):cat(home,impl_path,SLASH,"abcl",EXE_EXTENTION,NULL),ret);
/* runtime options from here */
ret=conss(q("--noinform"),ret);
ret=conss(q("--noinit"),ret);

View file

@ -13,7 +13,7 @@ char** cmd_run_acl(int argc,char** argv,struct sub_command* cmd) {
/*[binpath for alisp] --qq -I param -e init.lisp
[terminating NULL] that total 7 are default. */
int i;
char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,"allegro",SLASH,version,NULL);
char* impl_path=impldir(arch,os,"allegro",version);
char* help=get_opt("help",0);
char* script=get_opt("script",0);
char* image=get_opt("image",0);
@ -24,7 +24,7 @@ char** cmd_run_acl(int argc,char** argv,struct sub_command* cmd) {
ret=conss((strcmp("system",version)==0)?
truename(which(lisp)):
cat(impl_path,SLASH,lisp,EXE_EXTENTION,NULL),ret);
cat(home,impl_path,SLASH,lisp,EXE_EXTENTION,NULL),ret);
/* runtime options from here */
ret=conss(q("-qq"),ret);
if(acl_version) {
@ -34,7 +34,7 @@ char** cmd_run_acl(int argc,char** argv,struct sub_command* cmd) {
}
if(image) {
char *path=cat(impl_path,SLASH,"dump",SLASH,image,".core",NULL);
char *path=cat(home,impl_path,SLASH,"dump",SLASH,image,".core",NULL);
if(file_exist_p(path)) {
ret=conss(q("-I"),ret);
ret=conss(path,ret);

View file

@ -40,7 +40,7 @@ char** cmd_run_ccl(int argc,char** argv,struct sub_command* cmd) {
[terminating NULL] that total 9 are default. */
int i;
char* ccl_version=get_opt("version",0);
char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL);
char* impl_path=impldir(arch,os,impl,version);
char* script=get_opt("script",0);
char* image=get_opt("image",0);
char* program=get_opt("program",0);
@ -51,7 +51,7 @@ char** cmd_run_ccl(int argc,char** argv,struct sub_command* cmd) {
unsetenv("CCL_DEFAULT_DIRECTORY");
ret=conss(issystem?truename(which(strcmp(impl,"ccl32")==0?"ccl32":"ccl")):
cat(impl_path,SLASH,binname,EXE_EXTENTION,NULL),ret);
cat(home,impl_path,SLASH,binname,EXE_EXTENTION,NULL),ret);
if(ccl_version)
ret=conss(q("--version"),ret);
ret=conss(q("--no-init"),ret);
@ -60,9 +60,9 @@ char** cmd_run_ccl(int argc,char** argv,struct sub_command* cmd) {
ret=conss(q("--image-name"),ret);
if(!image) {
if(!issystem)
ret=conss(cat(impl_path,SLASH,binname,".image",NULL),ret);
ret=conss(cat(home,impl_path,SLASH,binname,".image",NULL),ret);
}else
ret=conss(cat(impl_path,SLASH,"dump",SLASH,image,".",binname,NULL),ret);
ret=conss(cat(home,impl_path,SLASH,"dump",SLASH,image,".",binname,NULL),ret);
ret=conss(q("--eval"),ret);
ret=conss(s_cat(q("(progn #-ros.init(cl:load \""),lispdir(),q("init.lisp"),q("\"))"),NULL),ret);

View file

@ -9,14 +9,14 @@ char** cmd_run_clasp(int argc,char** argv,struct sub_command* cmd) {
char* version=(char*)cmd->short_name;
/*[binpath for clasp] -r -n --eval init.lisp */ /* don't know very much about image yet.*/
int i;
char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL);
char* impl_path=impldir(arch,os,impl,version);
char* help=get_opt("help",0);
char* script=get_opt("script",0);
char* program=get_opt("program",0);
LVal ret=0;
char *bin=cat(impl_path,SLASH,"boehm",SLASH,"cclasp-boehm",EXE_EXTENTION,NULL);
char *bin=cat(home,impl_path,SLASH,"boehm",SLASH,"cclasp-boehm",EXE_EXTENTION,NULL);
s(arch),s(os);
ret=conss(bin,ret);
s(impl_path);

View file

@ -10,7 +10,7 @@ char** cmd_run_clisp(int argc,char** argv,struct sub_command* cmd) {
/*[binpath for clisp] -q -q -M param -repl init.lisp
[terminating NULL] that total 8 are default. */
int i;
char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL);
char* impl_path=impldir(arch,os,impl,version);
char* help=get_opt("help",0);
char* script=get_opt("script",0);
char* image=get_opt("image",0);
@ -22,7 +22,7 @@ char** cmd_run_clisp(int argc,char** argv,struct sub_command* cmd) {
ret=conss((strcmp("system",version)==0)?
truename(which((strcmp(impl,"clisp32")==0)?"clisp32":"clisp")):
cat(impl_path,SLASH,"bin",SLASH,"clisp",EXE_EXTENTION,NULL),ret);
cat(home,impl_path,SLASH,"bin",SLASH,"clisp",EXE_EXTENTION,NULL),ret);
if(get_opt("version",0)) {
ret=conss(q("--version"),ret);
simple=1;
@ -37,7 +37,7 @@ char** cmd_run_clisp(int argc,char** argv,struct sub_command* cmd) {
ret=conss(q("--help"),ret);
if(image) {
char *path=cat(impl_path,SLASH,"dump",SLASH,image,".core",NULL);
char *path=cat(home,impl_path,SLASH,"dump",SLASH,image,".core",NULL);
if(file_exist_p(path)) {
ret=conss(q("-M"),ret);
ret=conss(path,ret);

View file

@ -11,14 +11,14 @@ char** cmd_run_cmu(int argc,char** argv,struct sub_command* cmd) {
/*[binpath for lisp] -quiet -core param -eval init.lisp
-noinit -nositeinit [terminating NULL] that total 9 are default. */
int i;
char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,SLASH,NULL);
char* impl_path=impldir(arch,os,impl,version);
char* help=get_opt("help",0);
char* script=get_opt("script",0);
char* image=get_opt("image",0);
char* program=get_opt("program",0);
char* dynamic_space_size=get_opt("dynamic-space-size",0);
char* control_stack_size=get_opt("control-stack-size",0);
char* cmucllib=cat(impl_path,"lib"SLASH"cmucl"SLASH"lib",NULL);
char* cmucllib=cat(home,impl_path,SLASH"lib"SLASH"cmucl"SLASH"lib",NULL);
char* cmu_version=get_opt("version",0);
char *bin;
LVal ret=0;
@ -32,7 +32,7 @@ char** cmd_run_cmu(int argc,char** argv,struct sub_command* cmd) {
s(bin),bin=which("cmucl");
bin=truename(bin);
}else
bin=cat(impl_path,"bin",SLASH,"lisp",EXE_EXTENTION,NULL);
bin=cat(home,impl_path,SLASH,"bin",SLASH,"lisp",EXE_EXTENTION,NULL);
setenv("CMUCLLIB",cmucllib,1);
ret=conss(bin,ret);
@ -40,7 +40,7 @@ char** cmd_run_cmu(int argc,char** argv,struct sub_command* cmd) {
ret=conss(q("-quiet"),ret);
if(image) {
char *path=cat(impl_path,"dump",SLASH,image,".core",NULL);
char *path=cat(home,impl_path,SLASH,"dump",SLASH,image,".core",NULL);
if(file_exist_p(path)) {
ret=conss(q("-core"),ret);
ret=conss(q(path),ret);

View file

@ -2,6 +2,7 @@
#include "opt.h"
char** cmd_run_ecl(int argc,char** argv,struct sub_command* cmd) {
char* home=configdir();
char* arch=uname_m();
char* os=uname();
char* impl=(char*)cmd->name;
@ -9,7 +10,7 @@ char** cmd_run_ecl(int argc,char** argv,struct sub_command* cmd) {
/*[binpath for ecl] -norc -eval init.lisp
[terminating NULL] that total 5 are default. */
int i;
char* impl_path= cat(configdir(),"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL);
char* impl_path=impldir(arch,os,impl,version);
char* help=get_opt("help",0);
char* script=get_opt("script",0);
char* image=get_opt("image",0);
@ -19,11 +20,11 @@ char** cmd_run_ecl(int argc,char** argv,struct sub_command* cmd) {
if(strcmp(os,"darwin")==0 && strcmp("system",version)!=0) {
char* path=getenv("DYLD_FALLBACK_LIBRARY_PATH");
path=path?q(path):s_cat(q(getenv("HOME")),q("/lib:/usr/local/lib:/lib:/usr/lib"),NULL);
path=s_cat(q(impl_path),q("/lib:"),path,NULL);
path=s_cat(q(home),q(impl_path),q("/lib:"),path,NULL);
setenv("DYLD_FALLBACK_LIBRARY_PATH",path,1);
s(path);
}
ret=conss((strcmp("system",version)==0)?truename(which("ecl")):cat(impl_path,SLASH,"bin",SLASH,"ecl",EXE_EXTENTION,NULL),ret);
ret=conss((strcmp("system",version)==0)?truename(which("ecl")):cat(home,impl_path,SLASH,"bin",SLASH,"ecl",EXE_EXTENTION,NULL),ret);
s(arch),s(os),s(impl_path);
if(get_opt("version",0))
ret=conss(q("--version"),ret);

View file

@ -10,7 +10,7 @@ char** cmd_run_sbcl(int argc,char** argv,struct sub_command* cmd) {
/*[binpath for sbcl] --noinform --core param --eval init.lisp
--no-sysinit --no-userinit [terminating NULL] that total 9 are default. */
int i;
char* impl_path= cat(home,"impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL);
char* impl_path=impldir(arch,os,impl,version);
char *path=NULL;
char* help=get_opt("help",0);
char* script=get_opt("script",0);
@ -20,13 +20,13 @@ char** cmd_run_sbcl(int argc,char** argv,struct sub_command* cmd) {
char* control_stack_size=get_opt("control-stack-size",0);
char* enable_debugger=get_opt("enable-debugger",0);
char* sbcl_home=cat(impl_path,"/lib/sbcl",NULL);
char* sbcl_home=cat(home,impl_path,"/lib/sbcl",NULL);
LVal ret=0;
int issystem=(strcmp("system",version)==0);
char *bin=issystem?
strcmp(impl,"sbcl32")==0?truename(which("sbcl32")):truename(which("sbcl")):
cat(impl_path,SLASH,"bin",SLASH,"sbcl",EXE_EXTENTION,NULL);
cat(home,impl_path,SLASH,"bin",SLASH,"sbcl",EXE_EXTENTION,NULL);
setenv("SBCL_HOME",sbcl_home,1);
s(arch),s(os),s(sbcl_home);
@ -38,7 +38,7 @@ char** cmd_run_sbcl(int argc,char** argv,struct sub_command* cmd) {
char* bindir=cat(home,"bin"SLASH,NULL);
char* script2=q(script?script+1:"");
int pos= position_char("\"",script2);
path=cat(impl_path,SLASH,"dump",SLASH,image,".core",NULL);
path=cat(home,impl_path,SLASH,"dump",SLASH,image,".core",NULL);
if(pos!=-1)
script2[pos]='\0';
if(script &&
@ -53,7 +53,7 @@ char** cmd_run_sbcl(int argc,char** argv,struct sub_command* cmd) {
}else
cond_printf(1,"core not found:%s\n",path);
}else if(!issystem)
ret=conss(cat(impl_path,SLASH,"lib",SLASH,"sbcl",SLASH,"sbcl.core",NULL),
ret=conss(cat(home,impl_path,SLASH,"lib",SLASH,"sbcl",SLASH,"sbcl.core",NULL),
conss(q("--core"),ret));
s(impl_path);
if(help)

View file

@ -114,7 +114,7 @@ int sbcl_bin_install(struct install_options* param) {
char* home=configdir();
char* impl=param->impl;
char* version=param->version;
char* impl_path= cat(home,"impls",SLASH,param->arch,SLASH,param->os,SLASH,impl,SLASH,version,NULL);
char* impl_path= cat(home,impldir(param->arch,param->os,impl,version),NULL);
char* src=param->expand_path;
char* sbcl_home=cat(impl_path,"/lib/sbcl",NULL);
char* install_root=q(impl_path);

View file

@ -65,6 +65,12 @@ int delete_directory(char* pathspec,int recursive) {
s(cmd);
return ret==0;
}
char* currentdir(void) {
char buf[2048];
return append_trail_slash(q_(getcwd(buf,2048)));
}
#else
char* homedir(void);
#endif
@ -81,7 +87,6 @@ char* subcmddir(void) {
return lispdir();
}
char* pathname_directory(char* path) {
int i;
char* ret;
@ -99,3 +104,7 @@ char* file_namestring(char* path) {
s(path);
return ret;
}
char* impldir(char* arch,char* os,char* impl,char* version) {
return cat("impls",SLASH,arch,SLASH,os,SLASH,impl,SLASH,version,NULL);
}

View file

@ -60,4 +60,8 @@ int delete_directory(char* pathspec,int recursive) {
}
}
char* currentdir(void) {
char buf[2048];
return append_trail_slash(q_(_getcwd(buf,2048)));
}
#endif

View file

@ -128,6 +128,7 @@ char* escape_string(char* str);
char* s_escape_string(char* str);
char* lispdir(void);
/*util_dir.c */
char* currentdir(void);
char* configdir(void);
char* subcmddir(void);
char* truename(const char* path);
@ -137,6 +138,7 @@ int ensure_directories_exist (char* path);
int directory_exist_p (char* path);
int change_directory(const char* path);
int delete_directory(char* pathspec,int recursive);
char* impldir(char* arch,char* os,char* impl,char* version);
/*util_file.c */
int delete_file(char* pathspec);
int rename_file(char* file,char* new_name);