diff --git a/ide/lazarusidestrconsts.pas b/ide/lazarusidestrconsts.pas index b03aeda75d..0c0cde6e2c 100644 --- a/ide/lazarusidestrconsts.pas +++ b/ide/lazarusidestrconsts.pas @@ -5177,6 +5177,8 @@ resourcestring dlgInsertSection = 'Insert into Uses section of'; dlgInsertInterface = 'Interface'; dlgInsertImplementation = 'Implementation'; + lisInsteadOfCompilePackageCreateASimpleMakefile = 'Instead of compile ' + +'package create a simple Makefile.'; implementation diff --git a/ide/lazbuild.lpi b/ide/lazbuild.lpi index af743ac2f4..b6ab9753a7 100644 --- a/ide/lazbuild.lpi +++ b/ide/lazbuild.lpi @@ -9,6 +9,9 @@ + + + @@ -57,17 +60,19 @@ - + - + - + + + diff --git a/ide/lazbuild.lpr b/ide/lazbuild.lpr index c7776c95d2..093648a9ce 100644 --- a/ide/lazbuild.lpr +++ b/ide/lazbuild.lpr @@ -49,6 +49,7 @@ type FBuildModeOverride: String; FBuildRecursive: boolean; fCompilerOverride: String; + FCreateMakefile: boolean; fLazarusDirOverride : String; fCPUOverride: String; fOSOverride: String; @@ -89,6 +90,7 @@ type function BuildPackage(const AFilename: string): boolean; function LoadPackage(const AFilename: string): TLazPackage; procedure CompilePackage(APackage: TLazPackage; Flags: TPkgCompileFlags); + procedure DoCreateMakefile(APackage: TLazPackage); procedure CheckPackageGraphForCompilation(APackage: TLazPackage; FirstDependency: TPkgDependency); @@ -128,6 +130,7 @@ type write FSkipDependencies; property BuildIDE: boolean read FBuildIDE write FBuildIDE; property BuildIDEOptions: string read FBuildIDEOptions write FBuildIDEOptions; + property CreateMakefile: boolean read FCreateMakefile write FCreateMakefile; property WidgetSetOverride: String read fWidgetsetOverride write fWidgetsetOverride; property OSOverride: String read fOSOverride write fOSOverride; @@ -309,7 +312,10 @@ begin if (Length(WidgetSetOverride) <> 0) then APackage.CompilerOptions.LCLWidgetType:=WidgetSetOverride; - CompilePackage(APackage,Flags); + if CreateMakefile then + DoCreateMakefile(APackage) + else + CompilePackage(APackage,Flags); Result:=true; end; @@ -516,6 +522,11 @@ begin Error(ErrorBuildFailed,APackage.IDAsString+' compilation failed'); end; +procedure TLazBuildApplication.DoCreateMakefile(APackage: TLazPackage); +begin + PackageGraph.WriteMakeFile(APackage); +end; + procedure TLazBuildApplication.CheckPackageGraphForCompilation( APackage: TLazPackage; FirstDependency: TPkgDependency); @@ -1073,6 +1084,7 @@ begin LongOptions.Add('build-mode:'); LongOptions.Add('compiler:'); LongOptions.Add('lazarusdir:'); + LongOptions.Add('create-makefile'); ErrorMsg:=RepairedCheckOptions('lBrd',LongOptions,Options,NonOptions); if ErrorMsg<>'' then begin writeln(ErrorMsg); @@ -1144,6 +1156,8 @@ begin if HasOption('lazarusdir') then LazarusDirOverride := GetOptionValue('lazarusdir'); + if HasOption('create-makefile') then + CreateMakefile := true; finally Options.Free; NonOptions.Free; @@ -1212,6 +1226,11 @@ begin writeln(''); writeln(LanguageOpt); writeln(UTF8ToConsole(BreakString(space+lisOverrideLanguage,75, 22))); + + writeln(''); + writeln('--create-makefile'); + writeln(UTF8ToConsole(BreakString(space+ + lisInsteadOfCompilePackageCreateASimpleMakefile, 75, 22))); end; procedure TLazBuildApplication.Error(ErrorCode: Byte; const ErrorMsg: string);