www.gusucode.com > private工具箱matlab源码程序 > private/code_msvc_dspfile.m
function code_msvc_dspfile(fileNameInfo) % CODE_MSVC_DSPFILE(FILENAMEINFO) % Copyright 1995-2013 The MathWorks, Inc. % global gMachineInfo gTargetInfo fileName = fileNameInfo.msvcdspFile; sf_echo_generating('Coder',fileName); file = fopen(fileName,'Wt'); if file<3 construct_coder_error([],sprintf('Failed to create file: %s.',fileName),1); end srcDirectory = fileNameInfo.targetDirRelPath; libMexDir = fullfile(matlabroot,'extern','lib','win32','microsoft'); libMexFile = ['"',... fullfile(libMexDir,'libmx.lib'),'" "',... fullfile(libMexDir,'libmex.lib'),'" "',... fullfile(libMexDir,'libmat.lib'),'" "',... fullfile(libMexDir,'libfixedpoint.lib'),'" "',... fullfile(libMexDir,'libut.lib'),'" "',... fullfile(libMexDir,'libmwmathutil.lib'),'" "',... fullfile(libMexDir,'libemlrt.lib'),... '"']; fprintf(file,'# Microsoft Developer Studio Project File - Name="%s_%s" - Package Owner=<4>\n',gMachineInfo.machineName,gMachineInfo.targetName); fprintf(file,'# Microsoft Developer Studio Generated Build File, Format Version 5.00\n'); fprintf(file,'# ** DO NOT EDIT **\n'); fprintf(file,' \n'); if gTargetInfo.codingLibrary fprintf(file,'# TARGTYPE "Win32 (x86) Static Library" 0x0104\n'); else fprintf(file,'# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102\n'); end fprintf(file,' \n'); fprintf(file,'CFG=%s_%s - Win32 Debug\n',gMachineInfo.machineName,gMachineInfo.targetName); fprintf(file,'!MESSAGE This is not a valid makefile. To build this project using NMAKE,\n'); fprintf(file,'!MESSAGE use the Export Makefile command and run\n'); fprintf(file,'!MESSAGE \n'); fprintf(file,'!MESSAGE NMAKE /f "%s_%s.mak".\n',gMachineInfo.machineName,gMachineInfo.targetName); fprintf(file,'!MESSAGE \n'); fprintf(file,'!MESSAGE You can specify a configuration when running NMAKE\n'); fprintf(file,'!MESSAGE by defining the macro CFG on the command line. For example:\n'); fprintf(file,'!MESSAGE \n'); fprintf(file,'!MESSAGE NMAKE /f "%s_%s.mak" CFG="%s_%s - Win32 Debug"\n',gMachineInfo.machineName,gMachineInfo.targetName,gMachineInfo.machineName,gMachineInfo.targetName); fprintf(file,'!MESSAGE \n'); fprintf(file,'!MESSAGE Possible choices for configuration are:\n'); fprintf(file,'!MESSAGE\n'); if gTargetInfo.codingLibrary fprintf(file,'!MESSAGE "%s_%s - Win32 Debug" (based on "Win32 (x86) Static Library")\n',gMachineInfo.machineName,gMachineInfo.targetName); else fprintf(file,'!MESSAGE "%s_%s - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")\n',gMachineInfo.machineName,gMachineInfo.targetName); end fprintf(file,'!MESSAGE \n'); fprintf(file,' \n'); fprintf(file,'# Begin Project\n'); fprintf(file,'# PROP Scc_ProjName ""\n'); fprintf(file,'# PROP Scc_LocalPath ""\n'); fprintf(file,'CPP=cl.exe\n'); if ~gTargetInfo.codingLibrary fprintf(file,'MTL=midl.exe\n'); fprintf(file,'RSC=rc.exe\n'); end fprintf(file,'# PROP BASE Use_MFC 0\n'); fprintf(file,'# PROP BASE Use_Debug_Libraries 1\n'); fprintf(file,'# PROP BASE Output_Dir "Debug"\n'); fprintf(file,'# PROP BASE Intermediate_Dir "Debug"\n'); fprintf(file,'# PROP BASE Target_Dir ""\n'); fprintf(file,'# PROP Use_MFC 0\n'); fprintf(file,'# PROP Use_Debug_Libraries 1\n'); if ~gTargetInfo.codingLibrary fprintf(file,'# PROP Output_Dir "."\n'); else fprintf(file,'# PROP Output_Dir "%s"\n',fileNameInfo.targetDirName); end fprintf(file,'# PROP Intermediate_Dir "Debug"\n'); if ~gTargetInfo.codingLibrary fprintf(file,'# PROP Ignore_Export_Lib 0\n'); end fprintf(file,'# PROP Target_Dir ""\n'); userIncludeDirString = '' ; for i = 1:length(fileNameInfo.userIncludeDirs) userIncludeDirString = [userIncludeDirString,' /I "',fileNameInfo.userIncludeDirs{i},'"']; %#ok<AGROW> end if gTargetInfo.codingLibrary fprintf(file,'# ADD BASE CPP /nologo /W3 /GX /Z7 /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c\n'); fprintf(file,'# ADD CPP /nologo /MD /W3 /GX /Z7 /Od %s /I %s /I "%s\\extern\\include" /I "%s\\simulink\\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "MATLAB_MEX_FILE" /YX /FD /c\n',userIncludeDirString,srcDirectory,fileNameInfo.matlabRoot,fileNameInfo.matlabRoot); else fprintf(file,'# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c\n'); fprintf(file,'# ADD CPP /nologo /MD /W3 /Gm /GX /Zi /Od %s /I %s /I "%s" /I "%s\\extern\\include" /I "%s\\simulink\\include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "MATLAB_MEX_FILE" /YX /FD /c\n',userIncludeDirString,srcDirectory,fileNameInfo.rtwHeadersInclude,fileNameInfo.matlabRoot,fileNameInfo.matlabRoot); fprintf(file,'# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32\n'); fprintf(file,'# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o NUL /win32\n'); fprintf(file,'# ADD BASE RSC /l 0x409 /d "_DEBUG"\n'); fprintf(file,'# ADD RSC /l 0x409 /d "_DEBUG"\n'); end fprintf(file,'BSC32=bscmake.exe\n'); fprintf(file,'# ADD BASE BSC32 /nologo\n'); fprintf(file,'# ADD BSC32 /nologo\n'); if gTargetInfo.codingLibrary linkLibString = ''; for i = 1:length(fileNameInfo.userLibraries) linkLibString = [linkLibString,' "',fileNameInfo.userLibraries{i},'"']; %#ok<AGROW> end fprintf(file,'LIB32=link.exe -lib\n'); fprintf(file,'# ADD BASE LIB32 /nologo\n'); fprintf(file,'# ADD LIB32 /nologo %s\n',linkLibString); else fprintf(file,'LINK32=link.exe\n'); fprintf(file,'# ADD BASE LINK32 /nologo /subsystem:windows /dll /export:mexFunction /debug /machine:I386 /pdbtype:sept\n'); linkLibString = ''; numLinkMachines = length(fileNameInfo.linkLibFullPaths); if(numLinkMachines) for i = 1:numLinkMachines linkLibString = [linkLibString,' "',fileNameInfo.linkLibFullPaths{i},'"']; %#ok<AGROW> end end for i = 1:length(fileNameInfo.userLibraries) linkLibString = [linkLibString,' "',fileNameInfo.userLibraries{i},'"']; %#ok<AGROW> end mexFileName = [gMachineInfo.machineName,'_',gMachineInfo.targetName,'.',mexext]; % XXX (aelseed) fprintf(file,'# ADD LINK32 %s %s /nologo /subsystem:windows /dll /export:mexFunction /debug /machine:I386 /out:"%s" /pdbtype:sept\n',linkLibString,libMexFile,mexFileName); end fprintf(file,'# Begin Target\n'); fprintf(file,' \n'); fprintf(file,'# Name "%s_%s - Win32 Debug"\n',gMachineInfo.machineName,gMachineInfo.targetName); for i=1:length(fileNameInfo.userSources) fprintf(file,'# Begin Source File\n'); fprintf(file,' \n'); fprintf(file,'SOURCE="%s"\n',fileNameInfo.userSources{i}); fprintf(file,'# End Source File\n'); end for chart=gMachineInfo.charts chartNumber = sf('get',chart,'chart.number'); for i = 1:length(fileNameInfo.chartSourceFiles{chartNumber+1}) fprintf(file,'# Begin Source File\n'); fprintf(file,' \n'); fprintf(file,'SOURCE=%s\\%s\n',srcDirectory,fileNameInfo.chartSourceFiles{chartNumber+1}{i}); fprintf(file,'# End Source File\n'); end end fprintf(file,'# Begin Source File\n'); fprintf(file,' \n'); fprintf(file,'SOURCE=%s\\%s\n',srcDirectory,fileNameInfo.machineSourceFile); fprintf(file,'# End Source File\n'); if(~gTargetInfo.codingLibrary) fprintf(file,'# Begin Source File\n'); fprintf(file,' \n'); fprintf(file,'SOURCE=%s\\%s\n',srcDirectory,fileNameInfo.machineRegistryFile); fprintf(file,'# End Source File\n'); end fprintf(file,'# End Target\n'); fprintf(file,'# End Project\n'); fprintf(file,' \n'); fclose(file);