فهرست منبع

+ supported scripted sdcc-sdar

git-svn-id: branches/z80@45073 -
nickysn 5 سال پیش
والد
کامیت
fdbf1f4b7f
3فایلهای تغییر یافته به همراه17 افزوده شده و 5 حذف شده
  1. 15 4
      compiler/link.pas
  2. 1 0
      compiler/systems.inc
  3. 1 1
      compiler/systems/i_zxspectrum.pas

+ 15 - 4
compiler/link.pas

@@ -867,7 +867,8 @@ Implementation
 
 
         scripted_ar:=(target_ar.id=ar_gnu_ar_scripted) or
-                     (target_ar.id=ar_watcom_wlib_omf_scripted);
+                     (target_ar.id=ar_watcom_wlib_omf_scripted) or
+                     (target_ar.id=ar_sdcc_sdar_scripted);
 
         if scripted_ar then
           begin
@@ -876,7 +877,7 @@ Implementation
             Assign(script, scriptfile);
             Rewrite(script);
             try
-              if (target_ar.id=ar_gnu_ar_scripted) then
+              if (target_ar.id in [ar_gnu_ar_scripted,ar_sdcc_sdar_scripted]) then
                 writeln(script, 'CREATE ' + current_module.staticlibfilename)
               else { wlib case }
                 writeln(script,'-q -fo -c -b '+
@@ -884,13 +885,13 @@ Implementation
               current := TCmdStrListItem(SmartLinkOFiles.First);
               while current <> nil do
                 begin
-                  if (target_ar.id=ar_gnu_ar_scripted) then
+                  if (target_ar.id in [ar_gnu_ar_scripted,ar_sdcc_sdar_scripted]) then
                   writeln(script, 'ADDMOD ' + current.str)
                   else
                     writeln(script,'+' + current.str);
                   current := TCmdStrListItem(current.next);
                 end;
-              if (target_ar.id=ar_gnu_ar_scripted) then
+              if (target_ar.id in [ar_gnu_ar_scripted,ar_sdcc_sdar_scripted]) then
                 begin
                   writeln(script, 'SAVE');
                   writeln(script, 'END');
@@ -1750,6 +1751,15 @@ Implementation
           arfinishcmd : 'sdar s $LIB'
           );
 
+      ar_sdcc_sdar_scripted_info : tarinfo =
+          (
+            id    : ar_sdcc_sdar_scripted;
+            addfilecmd  : '';
+            arfirstcmd  : '';
+            arcmd : 'sdar -M < $SCRIPT';
+            arfinishcmd : ''
+          );
+
 
 initialization
   RegisterAr(ar_gnu_ar_info);
@@ -1758,4 +1768,5 @@ initialization
   RegisterAr(ar_watcom_wlib_omf_info);
   RegisterAr(ar_watcom_wlib_omf_scripted_info);
   RegisterAr(ar_sdcc_sdar_info);
+  RegisterAr(ar_sdcc_sdar_scripted_info);
 end.

+ 1 - 0
compiler/systems.inc

@@ -308,6 +308,7 @@
             ,ar_watcom_wlib_omf
             ,ar_watcom_wlib_omf_scripted
             ,ar_sdcc_sdar
+            ,ar_sdcc_sdar_scripted
        );
 
        tres = (res_none

+ 1 - 1
compiler/systems/i_zxspectrum.pas

@@ -65,7 +65,7 @@ unit i_zxspectrum;
             assemextern  : as_sdcc_sdasz80;
             link         : ld_none;
             linkextern   : ld_zxspectrum;
-            ar           : ar_sdcc_sdar;
+            ar           : ar_sdcc_sdar_scripted;
             res          : res_none;
             dbg          : dbg_dwarf2;
             script       : script_unix;