Browse Source

+ allow exports for netware

armin 23 years ago
parent
commit
6b6df5ee46
2 changed files with 20 additions and 19 deletions
  1. 6 2
      compiler/pmodules.pas
  2. 14 17
      compiler/targets/t_nwm.pas

+ 6 - 2
compiler/pmodules.pas

@@ -1370,7 +1370,8 @@ implementation
           importlib.generatelib;
           importlib.generatelib;
 
 
          if islibrary or
          if islibrary or
-            (target_info.target=target_i386_WIN32) then
+            (target_info.target=target_i386_WIN32) or
+	    (target_info.target=target_i386_NETWARE) then
            exportlib.generatelib;
            exportlib.generatelib;
 
 
 
 
@@ -1427,7 +1428,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.53  2002-03-29 09:00:56  armin
+  Revision 1.54  2002-03-29 17:19:50  armin
+  + allow exports for netware
+
+  Revision 1.53  2002/03/29 09:00:56  armin
   + forgot to delete a debug writeln
   + forgot to delete a debug writeln
 
 
   Revision 1.52  2002/03/28 16:07:52  armin
   Revision 1.52  2002/03/28 16:07:52  armin

+ 14 - 17
compiler/targets/t_nwm.pas

@@ -40,13 +40,12 @@
     begin
     begin
     end;
     end;
 
 
-    exports bla name 'bla';
-
-    Without Name 'bla' this will be exported in upper-case.
+    exports foo name 'Bar';
 
 
     The path to the import-Files (from netware-sdk, see developer.novell.com)
     The path to the import-Files (from netware-sdk, see developer.novell.com)
     must be specified by the library-path. All external modules are defined
     must be specified by the library-path. All external modules are defined
     as autoload. (Note: the import-files have to be in unix-format for exe2nlm)
     as autoload. (Note: the import-files have to be in unix-format for exe2nlm)
+    By default, the most import files are included in freepascal.
 
 
     i.e. Procedure ConsolePrintf (p:pchar); cdecl; external 'clib.nlm';
     i.e. Procedure ConsolePrintf (p:pchar); cdecl; external 'clib.nlm';
     sets IMPORT @clib.imp and MODULE clib.
     sets IMPORT @clib.imp and MODULE clib.
@@ -79,7 +78,6 @@
       - No debug symbols
       - No debug symbols
       - libc support (needs new target)
       - libc support (needs new target)
       - prelude support (needs new compiler switch)
       - prelude support (needs new compiler switch)
-      - make threadvars in the compiler working
       - a lot of additional units from nwsdk
       - a lot of additional units from nwsdk
 
 
 ****************************************************************************
 ****************************************************************************
@@ -247,7 +245,8 @@ begin
          end;
          end;
       end
       end
      else
      else
-      Comment(V_Error,'Exporting of variables is not supported under netware');
+      //Comment(V_Error,'Exporting of variables is not supported under netware');
+      Message1(parser_e_no_export_of_variables_for_target,'netware');
      hp2:=texported_item(hp2.next);
      hp2:=texported_item(hp2.next);
    end;
    end;
 end;
 end;
@@ -268,8 +267,7 @@ begin
   with Info do
   with Info do
    begin
    begin
      ExeCmd[1]:='nlmconv -T$RES';
      ExeCmd[1]:='nlmconv -T$RES';
-     {DllCmd[1]:='ld $OPT -shared -L. -o $EXE $RES';}
-     DllCmd[2]:='strip --strip-unneeded $EXE';
+     {DllCmd[2]:='strip --strip-unneeded $EXE';}
    end;
    end;
 end;
 end;
 
 
@@ -304,8 +302,7 @@ begin
   if Description <> '' then
   if Description <> '' then
     LinkRes.Add('DESCRIPTION "' + Description + '"');
     LinkRes.Add('DESCRIPTION "' + Description + '"');
   LinkRes.Add('VERSION '+tostr(dllmajor)+','+tostr(dllminor)+','+tostr(dllrevision));
   LinkRes.Add('VERSION '+tostr(dllmajor)+','+tostr(dllminor)+','+tostr(dllrevision));
-  {if nwscreenname = '' then nwscreenname := ProgNam;
-  if nwthreadname = '' then nwthreadname := ProgNam;}
+  
   p := Pos ('"', nwscreenname);
   p := Pos ('"', nwscreenname);
   while (p > 0) do
   while (p > 0) do
   begin
   begin
@@ -356,9 +353,8 @@ begin
   LinkRes.Add ('START _Prelude');  { defined in rtl/netware/nwpre.pp }
   LinkRes.Add ('START _Prelude');  { defined in rtl/netware/nwpre.pp }
   LinkRes.Add ('EXIT _Stop');
   LinkRes.Add ('EXIT _Stop');
 
 
-  //if not (cs_link_strip in aktglobalswitches) then
-  { ahhhggg: how do i detect if we have debug-symbols ? }
-  LinkRes.Add ('DEBUG');
+  if not (cs_link_strip in aktglobalswitches) then
+    LinkRes.Add ('DEBUG');
 
 
   { Write staticlibraries, is that correct ? }
   { Write staticlibraries, is that correct ? }
   if not StaticLibFiles.Empty then
   if not StaticLibFiles.Empty then
@@ -418,14 +414,12 @@ begin
    begin
    begin
      if not hp2.is_var then
      if not hp2.is_var then
       begin
       begin
-        { Export the Symbol
-          Warning: The Symbol is converted to upper-case if not explicitly
-          specified by >>Exports BlaBla NAME 'BlaBla';<< }
+        { Export the Symbol }
         Comment(V_Debug,'Exporting '+hp2.name^);
         Comment(V_Debug,'Exporting '+hp2.name^);
         LinkRes.Add ('EXPORT '+hp2.name^);
         LinkRes.Add ('EXPORT '+hp2.name^);
       end
       end
      else
      else
-      { really ? }
+      { really, i think it is possible }
       Comment(V_Error,'Exporting of variables is not supported under netware');
       Comment(V_Error,'Exporting of variables is not supported under netware');
      hp2:=texported_item(hp2.next);
      hp2:=texported_item(hp2.next);
    end;
    end;
@@ -557,7 +551,10 @@ initialization
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.15  2002-03-19 20:23:57  armin
+  Revision 1.16  2002-03-29 17:19:51  armin
+  + allow exports for netware
+
+  Revision 1.15  2002/03/19 20:23:57  armin
   + smart linking now works with netware
   + smart linking now works with netware
 
 
   Revision 1.14  2002/03/04 17:54:59  peter
   Revision 1.14  2002/03/04 17:54:59  peter