Changeset 269 in dev


Ignore:
Timestamp:
Aug 8, 2007, 4:19:30 AM (17 years ago)
Author:
dai_9181
Message:
 
Location:
trunk/abdev
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/MakePeHdr.cpp

    r268 r269  
    547547
    548548
     549    if( compiler.IsStaticLibrary() )
     550    {
     551        // 静的リンクライブラリ
     552
     553        if( !compiler.GetObjectModule().WriteText( OutputFileName ) )
     554        {
     555            MessageBox(0,"XML書き込みに失敗","test",0);
     556        }
     557        return;
     558    }
    549559/*
    550560    int t,t2;
  • trunk/abdev/BasicCompiler_Common/BasicCompiler.cpp

    r266 r269  
    566566    //_Test();
    567567
    568     MessageBox(0,"starting compiler/debugger","ActiveBasic",MB_OK);
     568    //MessageBox(0,"starting compiler/debugger","ActiveBasic",MB_OK);
    569569    trace( "Start ActiveBasic Compiler!" );
    570570
     
    751751        lstrcat(OutputFileName,temporary);
    752752        lstrcat(OutputFileName,temp2);
    753         if(bDebugCompile||bDebugRun) lstrcat(OutputFileName,"_debug.exe");
    754         else lstrcat(OutputFileName,".exe");
     753        if( compiler.IsStaticLibrary() )
     754        {
     755            if(bDebugCompile||bDebugRun)
     756            {
     757                lstrcat(OutputFileName,"_debug.abobj");
     758            }
     759            else
     760            {
     761                lstrcat(OutputFileName,".abobj");
     762            }
     763        }
     764        else
     765        {
     766            if(bDebugCompile||bDebugRun)
     767            {
     768                lstrcat(OutputFileName,"_debug.exe");
     769            }
     770            else
     771            {
     772                lstrcat(OutputFileName,".exe");
     773            }
     774        }
    755775    }
    756776
  • trunk/abdev/BasicCompiler_Common/Intermediate_Step1.cpp

    r206 r269  
    33#include <jenga/include/smoothie/Smoothie.h>
    44#include <jenga/include/smoothie/LexicalAnalysis.h>
     5
     6#include <Compiler.h>
    57
    68#include "../BasicCompiler_Common/common.h"
     
    233235                temporary[i3]=basbuf[i2];
    234236            }
    235             if(lstrcmpi(temporary,"noprompt")==0){
     237            if( lstrcmp( temporary, "static_link" ) == 0 )
     238            {
     239                // 静的リンクライブラリ
     240                while(basbuf[i2]==' '||basbuf[i2]=='\t') i2++;
     241                if(basbuf[i2]!='\"'){
     242                    SetError(1,NULL,i2);
     243                    return;
     244                }
     245                for(i3=0,i2++;;i2++,i3++){
     246                    if(basbuf[i2]=='\"'){
     247                        temporary[i3]=0;
     248                        break;
     249                    }
     250                    temporary[i3]=basbuf[i2];
     251                }
     252                GetFullPath(temporary,BasicCurDir);
     253
     254                compiler.staticLibraryFilePaths.push_back( temporary );
     255
     256                for(;;i2++){
     257                    if(basbuf[i2]=='\n'||basbuf[i2]=='\0') break;
     258                }
     259                SlideString(basbuf+i2,i-i2);
     260            }
     261            else if(lstrcmpi(temporary,"noprompt")==0){
    236262                //#noprompt
    237263                //旧機能なので、無視
  • trunk/abdev/BasicCompiler_Common/include/Compiler.h

    r268 r269  
    4343    // リンカ
    4444    Linker linker;
     45
     46    // 静的リンクするオブジェクトファイル
     47    std::vector<std::string> staticLibraryFilePaths;
    4548
    4649    // オブジェクトモジュール
  • trunk/abdev/BasicCompiler_Common/src/Source.cpp

    r266 r269  
    821821
    822822    // basic.sbpをインクルード
    823     const char *headCode = "#include <basic.sbp>\n";
     823    const char *headCode = "\n";
    824824    Realloc( length + lstrlen(headCode) );
    825825    Text::SlideString( buffer, lstrlen(headCode) );
Note: See TracChangeset for help on using the changeset viewer.