diff --git a/.gitattributes b/.gitattributes index cf0d06a35b..0846a465ff 100644 --- a/.gitattributes +++ b/.gitattributes @@ -434,9 +434,11 @@ compiler/utils/fpc.cft svneol=native#text/plain compiler/utils/fpc.mpw -text compiler/utils/fpc.pp svneol=native#text/plain compiler/utils/fpccfg.inc svneol=native#text/plain +compiler/utils/fpcfg.inc svneol=native#text/plain compiler/utils/fpcmkcfg.pp svneol=native#text/plain compiler/utils/fpcsubst.pp svneol=native#text/plain compiler/utils/fpimpdef.pp svneol=native#text/plain +compiler/utils/fpini.inc svneol=native#text/plain compiler/utils/fppkg.pp svneol=native#text/plain compiler/utils/gppc386.pp svneol=native#text/plain compiler/utils/mk68kreg.pp svneol=native#text/plain diff --git a/compiler/utils/fpcfg.inc b/compiler/utils/fpcfg.inc new file mode 100644 index 0000000000..2c1c56821f --- /dev/null +++ b/compiler/utils/fpcfg.inc @@ -0,0 +1,59 @@ +{$ifdef Delphi} +const fpcfg : array[0..3] of string[240]=( +{$else Delphi} +const fpcfg : array[0..3,1..240] of char=( +{$endif Delphi} + '#IFDEF NORMAL'#013#010+ + ' -T%fpctargetos%'#013#010+ + ' -Sg'#013#010+ + ' -O1'#013#010+ + ' -OG'#013#010+ + ' -Op3'#013#010+ + ' -Ratt'#013#010+ + ' -Fu%basepath%\units\%fpctarget%-%fpctargetos%'#013#010+ + ' -Fu%basepath%\units\%fpctarget%-%fpctargetos%\*'#013#010+ + ' -Fu%basepath%\units\%fpctarget%-%fpctargetos%\rtl'#013#010+ + ' -Cs131072'#013#010+ + ' -Ch2097152'#013,#010+ + ' -g-'#013#010+ + ' -p-'#013#010+ + ' -b-'#013#010+ + '#ENDIF'#013#010+ + #013#010+ + '#IFDEF DEBUG'#013#010+ + ' -T%fpctargetos%'#013#010+ + ' -Sg'#013#010+ + ' -Cr'#013#010+ + ' -Ci'#013#010+ + ' -Co'#013#010+ + ' -OG'#013#010+ + ' -Op3'#013#010+ + ' -Ratt'#013#010+ + ' -Fu%basepath%\units\%fpctarget%-%fpctargetos%'#013#010+ + ' -Fu%basepath%\units\%fpctarget%-%fpctargetos%\*'#013#010+ + ' -Fu%basepath%\units\%fpctarget%-%fp','ctargetos%\rtl'#013#010+ + ' -Cs131072'#013#010+ + ' -Ch2097152'#013#010+ + ' -g'#013#010+ + ' -p-'#013#010+ + ' -b-'#013#010+ + '#ENDIF'#013#010+ + #013#010+ + '#IFDEF RELEASE'#013#010+ + ' -T%fpctargetos%'#013#010+ + ' -Sg'#013#010+ + ' -O1'#013#010+ + ' -O2'#013#010+ + ' -OG'#013#010+ + ' -Op3'#013#010+ + ' -Ratt'#013#010+ + ' -Fu%basepath%\units\%fpctarget%-%fpctargetos%'#013#010+ + ' -Fu%basepath%\units\%fpctarget%-%fpctargetos%\*'#013#010+ + ' ','-Fu%basepath%\units\%fpctarget%-%fpctargetos%\rtl'#013#010+ + ' -Cs131072'#013#010+ + ' -Ch2097152'#013#010+ + ' -g-'#013#010+ + ' -p-'#013#010+ + ' -b-'#013#010+ + '#ENDIF'#013#010 +); diff --git a/compiler/utils/fpcmkcfg.pp b/compiler/utils/fpcmkcfg.pp index 802885b70d..78171dc739 100644 --- a/compiler/utils/fpcmkcfg.pp +++ b/compiler/utils/fpcmkcfg.pp @@ -26,23 +26,29 @@ uses usubst,SysUtils,Classes; } {$i fpccfg.inc} +{$i fpini.inc} +{$i fpcfg.inc} Const BuildVersion={$I %FPCVERSION%}; BuildTarget={$I %FPCTARGET%}; + BuildOSTarget={$I %FPCTARGETOS%}; Resourcestring - SUsage00 = 'Usage: %s [options]'; - SUsage10 = 'Where options is one or more of'; - SUSage20 = ' -t filename Template file name. Default is built-in'; - SUSage30 = ' -o filename Set output file. Default is standard output.'; - SUsage40 = ' -d name=value define name=value pair.'; - SUsage50 = ' -h show this help and exit.'; - SUsage60 = ' -u name remove name from list of name/value pairs.'; - SUsage70 = ' -l filename read name/value pairs from filename'; - SUsage80 = ' -b show builtin template and exit.'; - SUsage90 = ' -v be verbose.'; + SUsage00 = 'Usage: %s [options]'; + SUsage10 = 'Where options is one or more of'; + SUSage20 = ' -t filename Template file name. Default is built-in'; + SUSage30 = ' -o filename Set output file. Default is standard output.'; + SUsage40 = ' -d name=value define name=value pair.'; + SUsage50 = ' -h show this help and exit.'; + SUsage60 = ' -u name remove name from list of name/value pairs.'; + SUsage70 = ' -l filename read name/value pairs from filename'; + SUsage80 = ' -b show builtin template and exit.'; + SUsage90 = ' -v be verbose.'; + Susage100 = ' -0 use built in fpc.cfg template (default)'; + Susage110 = ' -1 use built in fp.cfg template'; + Susage120 = ' -2 use built in fp.ini template'; SErrUnknownOption = 'Error: Unknown option.'; SErrArgExpected = 'Error: Option "%s" requires an argument.'; SErrNoSuchFile = 'Error: File "%s" does not exist.'; @@ -60,17 +66,18 @@ Var List,Cfg : TStringList; TemplateFileName, OutputFileName : String; - - + IDEBuildin : Integer; procedure Init; begin Verbose:=False; + IDEBuildIn:=0; List:=TStringList.Create; AddToList(List,'FPCVERSION',BuildVersion); AddToList(List,'FPCTARGET',BuildTarget); + AddToList(List,'FPCTARGETOS',BuildOSTarget); AddToList(List,'PWD',GetCurrentDir); AddToList(List,'BUILDDATE',DateToStr(Date)); AddToList(List,'BUILDTIME',TimeToStr(Time)); @@ -98,6 +105,9 @@ begin Writeln(SUsage70); Writeln(SUsage80); Writeln(SUsage90); + Writeln(SUsage100); + Writeln(SUsage110); + Writeln(SUsage120); Halt(1); end; @@ -158,6 +168,9 @@ begin 'u' : AddPair(List,GetOptArg+'='); 'o' : OutputFileName:=GetoptArg; 's' : SkipBackup:=True; + '0' : IDEBuildin:=0; + '1' : IDEBuildin:=1; + '2' : IDEBuildin:=2; else UnknownOption(S); end; @@ -174,7 +187,16 @@ begin AddToList(List,'TEMPLATEFILE',TemplateFileName); end else - AddToList(List,'TEMPLATEFILE','builtin'); + begin + case IDEBuildin of + 1: + Cfg.Text:=StrPas(Addr(fpcfg)); + 2: + Cfg.Text:=StrPas(Addr(fpini)); + end; + + AddToList(List,'TEMPLATEFILE','builtin'); + end; end; diff --git a/compiler/utils/fpini.inc b/compiler/utils/fpini.inc new file mode 100644 index 0000000000..2a535f75e8 --- /dev/null +++ b/compiler/utils/fpini.inc @@ -0,0 +1,52 @@ +{$ifdef Delphi} +const fpini : array[0..2] of string[240]=( +{$else Delphi} +const fpini : array[0..2,1..240] of char=( +{$endif Delphi} + '[Compile]'#013#010+ + 'CompileMode=DEBUG'#013#010+ + #013#010+ + '[Help]'#013#010+ + 'Files="%basepath%\doc\fpctoc.htx"'#013#010+ + #013#010+ + '[Editor]'#013#010+ + 'DefaultTabSize=8'#013#010+ + 'DefaultFlags=20599'#013#010+ + 'DefaultSaveExt=.pas'#013#010+ + 'DefaultIndentSize=1'#013#010+ + #013#010+ + '[Highlight]'#013#010+ + 'Exts="*.pas;*.pp;*.inc"'#013#010+ + 'NeedsTabs="make*;make*.*"'#013#010+ + #013#010+ + '[Sou','rcePath]'#013#010+ + 'SourceList=""'#013#010+ + #013#010+ + '[Mouse]'#013#010+ + 'DoubleDelay=8'#013#010+ + 'ReverseButtons=0'#013#010+ + 'AltClickAction=6'#013#010+ + 'CtrlClickAction=1'#013#010+ + #013#010+ + '[Search]'#013#010+ + 'FindFlags=4'#013#010+ + #013#010+ + '[Breakpoints]'#013#010+ + 'Count=0'#013#010+ + #013#010+ + '[Watches]'#013#010+ + 'Count=0'#013#010+ + #013#010+ + '[Preferences]'#013#010+ + 'DesktopFileFlags=209'#013#010+ + 'CenterCurrentLineWhile','Debugging=1'#013#010+ + 'AutoSaveFlags=7'#013#010+ + 'MiscOptions=6'#013#010+ + 'DesktopLocation=1'#013#010+ + #013#010+ + '[Misc]'#013#010+ + 'ShowReadme=1'#013#010+ + #013#010+ + '[Files]'#013#010+ + 'OpenExts="*.pas;*.pp;*.inc"'#013#010 +);