Browse Source

* don't create temporary smartlink dir for internalassembler

peter 24 years ago
parent
commit
eb95f58e21
1 changed files with 51 additions and 47 deletions
  1. 51 47
      compiler/assemble.pas

+ 51 - 47
compiler/assemble.pas

@@ -41,8 +41,6 @@ const
 
 
 type
 type
   TAssembler=class
   TAssembler=class
-  private
-    procedure CreateSmartLinkPath(const s:string);
   public
   public
   {filenames}
   {filenames}
     path     : pathstr;
     path     : pathstr;
@@ -60,6 +58,8 @@ type
   end;
   end;
 
 
   TExternalAssembler=class(TAssembler)
   TExternalAssembler=class(TAssembler)
+  private
+    procedure CreateSmartLinkPath(const s:string);
   protected
   protected
   {outfile}
   {outfile}
     AsmSize,
     AsmSize,
@@ -144,20 +144,12 @@ begin
 { load start values }
 { load start values }
   asmfile:=current_module.asmfilename^;
   asmfile:=current_module.asmfilename^;
   objfile:=current_module.objfilename^;
   objfile:=current_module.objfilename^;
-  name:=FixFileName(current_module.modulename^);
+  name:=Lower(current_module.modulename^);
+  path:=current_module.outputpath^;
   SmartAsm:=smart;
   SmartAsm:=smart;
   SmartFilesCount:=0;
   SmartFilesCount:=0;
   SmartHeaderCount:=0;
   SmartHeaderCount:=0;
   SmartLinkOFiles.Clear;
   SmartLinkOFiles.Clear;
-{ Which path will be used ? }
-  if SmartAsm then
-   begin
-     path:=current_module.outputpath^+FixFileName(current_module.modulename^)+target_info.smartext;
-     CreateSmartLinkPath(path);
-     path:=FixPath(path,false);
-   end
-  else
-   path:=current_module.outputpath^;
 end;
 end;
 
 
 
 
@@ -176,40 +168,6 @@ begin
 end;
 end;
 
 
 
 
-procedure TAssembler.CreateSmartLinkPath(const s:string);
-var
-  dir : searchrec;
-begin
-  if PathExists(s) then
-   begin
-     { the path exists, now we clean only all the .o and .s files }
-     { .o files }
-     findfirst(s+dirsep+'*'+target_info.objext,anyfile,dir);
-     while (doserror=0) do
-      begin
-        RemoveFile(s+dirsep+dir.name);
-        findnext(dir);
-      end;
-     findclose(dir);
-     { .s files }
-     findfirst(s+dirsep+'*'+target_info.asmext,anyfile,dir);
-     while (doserror=0) do
-      begin
-        RemoveFile(s+dirsep+dir.name);
-        findnext(dir);
-      end;
-     findclose(dir);
-   end
-  else
-   begin
-     {$I-}
-      mkdir(s);
-     {$I+}
-     if ioresult<>0 then;
-   end;
-end;
-
-
 procedure TAssembler.NextSmartName(place:tcutplace);
 procedure TAssembler.NextSmartName(place:tcutplace);
 var
 var
   s : string;
   s : string;
@@ -255,10 +213,53 @@ end;
 Constructor TExternalAssembler.Create(smart:boolean);
 Constructor TExternalAssembler.Create(smart:boolean);
 begin
 begin
   inherited Create(smart);
   inherited Create(smart);
+  if SmartAsm then
+   begin
+     path:=FixPath(current_module.outputpath^+FixFileName(current_module.modulename^)+target_info.smartext,false);
+     CreateSmartLinkPath(path);
+   end;
   Outcnt:=0;
   Outcnt:=0;
 end;
 end;
 
 
 
 
+procedure TExternalAssembler.CreateSmartLinkPath(const s:string);
+var
+  dir : searchrec;
+  hs  : string;
+begin
+  if PathExists(s) then
+   begin
+     { the path exists, now we clean only all the .o and .s files }
+     { .o files }
+     findfirst(s+dirsep+'*'+target_info.objext,anyfile,dir);
+     while (doserror=0) do
+      begin
+        RemoveFile(s+dirsep+dir.name);
+        findnext(dir);
+      end;
+     findclose(dir);
+     { .s files }
+     findfirst(s+dirsep+'*'+target_info.asmext,anyfile,dir);
+     while (doserror=0) do
+      begin
+        RemoveFile(s+dirsep+dir.name);
+        findnext(dir);
+      end;
+     findclose(dir);
+   end
+  else
+   begin
+     hs:=s;
+     if hs[length(hs)] in ['/','\'] then
+      delete(hs,length(hs),1);
+     {$I-}
+      mkdir(hs);
+     {$I+}
+     if ioresult<>0 then;
+   end;
+end;
+
+
 const
 const
   lastas  : byte=255;
   lastas  : byte=255;
 var
 var
@@ -611,7 +612,10 @@ end;
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.15  2001-03-05 21:39:11  peter
+  Revision 1.16  2001-03-13 18:42:39  peter
+    * don't create temporary smartlink dir for internalassembler
+
+  Revision 1.15  2001/03/05 21:39:11  peter
     * changed to class with common TAssembler also for internal assembler
     * changed to class with common TAssembler also for internal assembler
 
 
   Revision 1.14  2001/02/26 08:08:16  michael
   Revision 1.14  2001/02/26 08:08:16  michael