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);