/[gcl]/gcl/unixport/sys_gcl.c
ViewVC logotype

Diff of /gcl/unixport/sys_gcl.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.5 by camm, Mon Jul 29 22:50:54 2002 UTC revision 1.6 by camm, Tue Sep 10 03:35:15 2002 UTC
# Line 1  Line 1 
1    #include <stdlib.h>
2  #include "../h/include.h"  #include "../h/include.h"
3    
4  extern object user_init();  extern object user_init();
# Line 13  load1(x) Line 14  load1(x)
14   fflush(stdout);   fflush(stdout);
15   load(x);}   load(x);}
16    
17    #define mjoin(a,b) a ## b
18    #define Mjoin(a,b) mjoin(a,b)
19    
20    #define ar_init(a) do {\
21      char b[200];\
22      \
23      if (snprintf(b,sizeof(b),"ar x %-*.*slibgcl.a %s.o",\
24                    sSAsystem_directoryA->s.s_dbind->st.st_fillp,\
25                    sSAsystem_directoryA->s.s_dbind->st.st_fillp,\
26                    sSAsystem_directoryA->s.s_dbind->st.st_self,#a)<=0)\
27        error("Cannot unpack module " #a "o\n");\
28      if (system(b)) \
29        error("Cannot run ar command to unpack module " #a ".o\n");\
30      init_or_load(Mjoin(init_,a),#a ".o");\
31      if (unlink(#a ".o"))\
32        error("Cannot unlink " #a ".o\n");\
33    } while(0)
34    
35    #define lsp_init(a) do {\
36       char b[200];\
37       \
38       if (snprintf(b,sizeof(b),"%-*.*s%s",\
39                    sSAsystem_directoryA->s.s_dbind->st.st_fillp,\
40                    sSAsystem_directoryA->s.s_dbind->st.st_fillp,\
41                    sSAsystem_directoryA->s.s_dbind->st.st_self,a)<=0)\
42         error("Cannot append system directory\n");\
43       load1(b);\
44    } while(0)
45    
46  void  void
47  init_init()  init_init()
48  {  {
49    
50    load1("../lsp/export.lsp");    lsp_init("../lsp/export.lsp");
51    init_or_load(init_defmacro,"../lsp/defmacro.o");  
52    init_or_load(init_evalmacros,"../lsp/evalmacros.o");    ar_init(defmacro);
53    init_or_load(init_top,"../lsp/top.o");    ar_init(evalmacros);
54    init_or_load(init_module,"../lsp/module.o");    ar_init(top);
55    load1("../lsp/autoload.lsp");    ar_init(module);
56    
57      lsp_init("../lsp/autoload.lsp");
58    
59  }  }
60    
61    #define ar_check_init(a,b) do {\
62       object t;\
63       \
64       for (t=b->s.s_dbind;!endp(t) && type_of(t->c.c_car)==t_string && strcmp(#a,t->c.c_car->st.st_self);t=t->c.c_cdr);\
65       if (endp(t))\
66         ar_init(a);\
67    } while(0)
68    
69    
70  void  void
71  init_system()  init_system(object no_init)
72  {  {
73    init_or_load(init_predlib,"../lsp/predlib.o");  
74    init_or_load(init_setf,"../lsp/setf.o");    if (type_of(no_init)!=t_symbol)
75    init_or_load(init_arraylib,"../lsp/arraylib.o");      error("Supplied no_init is not of type symbol\n");
76    init_or_load(init_assert,"../lsp/assert.o");  
77    init_or_load(init_defstruct,"../lsp/defstruct.o");    ar_check_init(predlib,no_init);
78    init_or_load(init_describe,"../lsp/describe.o");    ar_check_init(setf,no_init);
79    init_or_load(init_iolib,"../lsp/iolib.o");    ar_check_init(arraylib,no_init);
80    init_or_load(init_listlib,"../lsp/listlib.o");    ar_check_init(assert,no_init);
81    init_or_load(init_mislib,"../lsp/mislib.o");    ar_check_init(defstruct,no_init);
82    init_or_load(init_numlib,"../lsp/numlib.o");    ar_check_init(describe,no_init);
83    init_or_load(init_packlib,"../lsp/packlib.o");    ar_check_init(iolib,no_init);
84    init_or_load(init_seq,"../lsp/seq.o");    ar_check_init(listlib,no_init);
85    init_or_load(init_seqlib,"../lsp/seqlib.o");    ar_check_init(mislib,no_init);
86    init_or_load(init_trace,"../lsp/trace.o");    ar_check_init(numlib,no_init);
87    init_or_load(init_sloop,"../lsp/sloop.o");    ar_check_init(packlib,no_init);
88    init_or_load(init_serror,"../lsp/serror.o");    ar_check_init(seq,no_init);
89    init_or_load(init_destructuring_bind,"../lsp/destructuring_bind.o");    ar_check_init(seqlib,no_init);
90    init_or_load(init_loop,"../lsp/loop.o");    ar_check_init(trace,no_init);
91    init_or_load(init_defpackage,"../lsp/defpackage.o");    ar_check_init(sloop,no_init);
92    init_or_load(init_make_defpackage,"../lsp/make_defpackage.o");    ar_check_init(serror,no_init);
93      ar_check_init(destructuring_bind,no_init);
94      ar_check_init(loop,no_init);
95      ar_check_init(defpackage,no_init);
96      ar_check_init(make_defpackage,no_init);
97    
98                    
99    init_or_load(init_cmpinline,"../cmpnew/cmpinline.o");    ar_check_init(cmpinline,no_init);
100    init_or_load(init_cmputil,"../cmpnew/cmputil.o");    ar_check_init(cmputil,no_init);
101    
102    init_or_load(init_debug,"../lsp/debug.o");    ar_check_init(debug,no_init);
103    init_or_load(init_info,"../lsp/info.o");    ar_check_init(info,no_init);
104    
105    init_or_load(init_cmptype,"../cmpnew/cmptype.o");    ar_check_init(cmptype,no_init);
106    init_or_load(init_cmpbind,"../cmpnew/cmpbind.o");    ar_check_init(cmpbind,no_init);
107    init_or_load(init_cmpblock,"../cmpnew/cmpblock.o");    ar_check_init(cmpblock,no_init);
108    init_or_load(init_cmpcall,"../cmpnew/cmpcall.o");    ar_check_init(cmpcall,no_init);
109    init_or_load(init_cmpcatch,"../cmpnew/cmpcatch.o");    ar_check_init(cmpcatch,no_init);
110    init_or_load(init_cmpenv,"../cmpnew/cmpenv.o");    ar_check_init(cmpenv,no_init);
111    init_or_load(init_cmpeval,"../cmpnew/cmpeval.o");    ar_check_init(cmpeval,no_init);
112    init_or_load(init_cmpflet,"../cmpnew/cmpflet.o");    ar_check_init(cmpflet,no_init);
113    init_or_load(init_cmpfun,"../cmpnew/cmpfun.o");    ar_check_init(cmpfun,no_init);
114    init_or_load(init_cmpif,"../cmpnew/cmpif.o");    ar_check_init(cmpif,no_init);
115    init_or_load(init_cmplabel,"../cmpnew/cmplabel.o");    ar_check_init(cmplabel,no_init);
116    init_or_load(init_cmplam,"../cmpnew/cmplam.o");    ar_check_init(cmplam,no_init);
117    init_or_load(init_cmplet,"../cmpnew/cmplet.o");    ar_check_init(cmplet,no_init);
118    init_or_load(init_cmploc,"../cmpnew/cmploc.o");    ar_check_init(cmploc,no_init);
119    init_or_load(init_cmpmap,"../cmpnew/cmpmap.o");    ar_check_init(cmpmap,no_init);
120    init_or_load(init_cmpmulti,"../cmpnew/cmpmulti.o");    ar_check_init(cmpmulti,no_init);
121    init_or_load(init_cmpspecial,"../cmpnew/cmpspecial.o");    ar_check_init(cmpspecial,no_init);
122    init_or_load(init_cmptag,"../cmpnew/cmptag.o");    ar_check_init(cmptag,no_init);
123    init_or_load(init_cmptop,"../cmpnew/cmptop.o");    ar_check_init(cmptop,no_init);
124    init_or_load(init_cmpvar,"../cmpnew/cmpvar.o");    ar_check_init(cmpvar,no_init);
125    init_or_load(init_cmpvs,"../cmpnew/cmpvs.o");    ar_check_init(cmpvs,no_init);
126    init_or_load(init_cmpwt,"../cmpnew/cmpwt.o");    ar_check_init(cmpwt,no_init);
127    
128      build_symbol_table();
129                            
130    sLApackageA->s.s_dbind = user_package;    sLApackageA->s.s_dbind = user_package;
131      user_init();      user_init();

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26