static void Main(string[] args) { Config.Parse(args); string ProjectFile = Config.Result; if (string.IsNullOrEmpty(ProjectFile)) { ProjectFile = "project.xml"; } Log(AppVersion); try { Log("Loading data..."); Catalog.DataDirectory = Config.GetPath("Data") ?? Path.Combine(AppPath, "data"); Catalog.WorkDirectory = "build"; Catalog.Initialize(); Log("Loading project..."); Project project; project = Catalog.LoadProject(ProjectFile); RepositoryResolver.ResolveForProject(project); Log("Generating files..."); MakefileGenerator m = new MakefileGenerator(project); m.UseExternalMakefile = false; m.Export("Makefile"); Make make = new Make(); foreach (var rule in Config.Rules) { Log($"Rule {rule}"); make.Run(rule); } Log("Finished"); } catch (Exception e) { Log($"Unhandled: {e.Message}", "Error"); } }