瀏覽代碼

* extradefines field added to target_info, so that targets don't
need to put code in options.pas for it

peter 24 年之前
父節點
當前提交
8ee0413cf7
共有 2 個文件被更改,包括 24 次插入36 次删除
  1. 16 33
      compiler/options.pas
  2. 8 3
      compiler/systems.pas

+ 16 - 33
compiler/options.pas

@@ -707,19 +707,6 @@ begin
                       more:=Upper(More);
                       if not target_is_set then
                        begin
-                         {Remove non core targetname extra defines}
-                         case target_info.target of
-                          target_i386_freebsd :
-                            begin
-                              undef_symbol('LINUX');
-                              undef_symbol('BSD');
-                              undef_symbol('UNIX');
-                            end;
-                          target_i386_linux :
-                            begin
-                              undef_symbol('UNIX');
-                            end;
-                         end;
                          { remove old target define }
                          undef_symbol(upper(target_info.shortname));
                          { Save assembler if set }
@@ -1254,6 +1241,8 @@ end;
 procedure read_arguments(cmd:string);
 var
   configpath : pathstr;
+  s : string;
+  i : integer;
 begin
   option:=coption.create;
   disable_configfile:=false;
@@ -1417,25 +1406,15 @@ begin
    StopOptions;
 
   { Non-core target defines }
-  case target_info.target of
-    target_i386_freebsd :
-      begin
-        def_symbol('LINUX'); { Hack: Linux define is also needed for freebsd (MvdV) }
-        def_symbol('BSD');
-        def_symbol('UNIX');
-      end;
-    target_i386_linux :
-      begin
-        def_symbol('UNIX');
-      end;
-    target_i386_sunos :
-      begin
-        def_symbol('UNIX');
-        def_symbol('SOLARIS');
-        def_symbol('LIBC');
-        def_symbol('SUNOS');
-      end;
-  end;
+  s:=target_info.extradefines;
+  while (s<>'') do
+   begin
+     i:=pos(';',s);
+     if i=0 then
+      i:=length(s)+1;
+     def_symbol(Copy(s,1,i-1));
+     delete(s,1,i);
+   end;
 
   { endian define }
   case target_info.endian of
@@ -1561,7 +1540,11 @@ finalization
 end.
 {
   $Log$
-  Revision 1.42  2001-05-18 22:28:59  peter
+  Revision 1.43  2001-06-02 19:21:45  peter
+    * extradefines field added to target_info, so that targets don't
+      need to put code in options.pas for it
+
+  Revision 1.42  2001/05/18 22:28:59  peter
     * endian define
 
   Revision 1.41  2001/05/12 12:11:31  peter

+ 8 - 3
compiler/systems.pas

@@ -55,7 +55,7 @@ interface
        ttarget = (target_none,
             target_i386_GO32V1,target_i386_GO32V2,target_i386_linux,
               target_i386_OS2,target_i386_Win32,target_i386_freebsd,
-              target_i386_Netware,target_i386_sunos,
+              target_i386_Netware,target_i386_sunos,target_i386_beos,
             target_m68k_Amiga,target_m68k_Atari,target_m68k_Mac,
               target_m68k_linux,target_m68k_PalmOS,
             target_alpha_linux,
@@ -76,7 +76,7 @@ interface
        tld = (ld_none,
             ld_i386_GO32V1,ld_i386_GO32V2,ld_i386_linux,
               ld_i386_OS2,ld_i386_Win32,ld_i386_freebsd,
-              ld_i386_Netware,ld_i386_sunos,
+              ld_i386_Netware,ld_i386_sunos,ld_i386_beos,
             ld_m68k_Amiga,ld_m68k_Atari,ld_m68k_Mac,
               ld_m68k_linux,ld_m68k_PalmOS,
             ld_alpha_linux,
@@ -139,6 +139,7 @@ interface
           flags        : set of ttargetflags;
           cpu          : ttargetcpu;
           unit_env     : string[12];
+          extradefines : string[40];
           sharedlibext : string[10];
           staticlibext,
           sourceext,
@@ -572,7 +573,11 @@ finalization
 end.
 {
   $Log$
-  Revision 1.16  2001-04-18 22:02:00  peter
+  Revision 1.17  2001-06-02 19:21:45  peter
+    * extradefines field added to target_info, so that targets don't
+      need to put code in options.pas for it
+
+  Revision 1.16  2001/04/18 22:02:00  peter
     * registration of targets and assemblers
 
   Revision 1.15  2001/03/06 18:28:02  peter