2026-05-09 03:16:12 +09:00
|
|
|
const PADDING = 24;
|
2026-05-08 05:18:35 +09:00
|
|
|
|
2026-05-08 05:35:07 +09:00
|
|
|
for(var i = 1; i < ARGV.length; i++) {
|
|
|
|
|
if(ARGV[i] == "--help") {
|
2026-05-08 19:07:45 +09:00
|
|
|
var keys;
|
|
|
|
|
|
2026-05-08 05:18:35 +09:00
|
|
|
console.log("PMake " + pmake.VERSION + " - Pyrite's build script generator");
|
|
|
|
|
console.log("");
|
2026-05-09 03:16:12 +09:00
|
|
|
console.log("Usage: " + ARGV[0] + " [options]");
|
|
|
|
|
|
|
|
|
|
keys = Object.keys(pmake.options);
|
|
|
|
|
for(var i = 0; i < keys.length; i++) {
|
|
|
|
|
console.log("");
|
|
|
|
|
console.log("OPTIONS - " + keys[i]);
|
|
|
|
|
|
|
|
|
|
var keys2 = Object.keys(pmake.options[keys[i]]);
|
|
|
|
|
for(var j = 0; j < keys2.length; j++) {
|
|
|
|
|
const opt = pmake.options[keys[i]][keys2[j]];
|
|
|
|
|
var arg = "";
|
|
|
|
|
var opts = [];
|
|
|
|
|
|
|
|
|
|
if(opt.option) {
|
|
|
|
|
arg = "=" + opt.option;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log(" --" + keys2[j] + arg + " ".repeat(PADDING - keys2[j].length - 2 - arg.length) + opt.description);
|
|
|
|
|
if(!opt.options) {
|
|
|
|
|
} else if((typeof opt.options) == "function") {
|
|
|
|
|
opts = opt.options();
|
|
|
|
|
} else {
|
|
|
|
|
opts = opt.options;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(opts.length > 0) {
|
|
|
|
|
for(var k = 0; k < opts.length; k++) {
|
|
|
|
|
console.log(" " + opts[k]);
|
|
|
|
|
}
|
|
|
|
|
console.log("");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2026-05-08 19:07:45 +09:00
|
|
|
console.log("");
|
|
|
|
|
console.log("ACTIONS");
|
|
|
|
|
keys = Object.keys(pmake.actions);
|
|
|
|
|
for(var i = 0; i < keys.length; i++) {
|
|
|
|
|
console.log(" " + keys[i] + " ".repeat(PADDING - keys[i].length) + pmake.actions[keys[i]].description);
|
|
|
|
|
}
|
2026-05-08 05:18:35 +09:00
|
|
|
process.exit(0);
|
2026-05-08 05:35:07 +09:00
|
|
|
} else if(ARGV[i].startsWith("--")) {
|
2026-05-08 05:25:34 +09:00
|
|
|
console.log("Error: invalid option '" + ARGV[i].substr(2) + "'");
|
|
|
|
|
process.exit(1);
|
2026-05-08 05:18:35 +09:00
|
|
|
}
|
|
|
|
|
}
|
2026-05-08 19:07:45 +09:00
|
|
|
|
2026-05-09 03:16:12 +09:00
|
|
|
(function(){
|
|
|
|
|
function make(output){
|
|
|
|
|
var mk = new pmake.File(output, "w");
|
|
|
|
|
|
|
|
|
|
mk.write("# This file was auto-generated. Do not edit manually!\n");
|
|
|
|
|
mk.write("\n");
|
|
|
|
|
mk.write("SILENT = @\n");
|
|
|
|
|
mk.write("\n");
|
|
|
|
|
|
|
|
|
|
if(output == "Makefile"){
|
|
|
|
|
var targets = pmake.resolveProjects(pmake.projects);
|
|
|
|
|
for(var i = 0; i < targets.length; i++){
|
|
|
|
|
mk.write(targets[i].target + ":\n");
|
|
|
|
|
mk.write(" @$(MAKE) -f " + targets[i].target + ".make\n");
|
|
|
|
|
mk.write("\n");
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
mk.close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
make("Makefile");
|
|
|
|
|
var targets = pmake.resolveProjects(pmake.projects);
|
|
|
|
|
for(var i = 0; i < targets.length; i++){
|
|
|
|
|
make(targets[i].target + ".make");
|
2026-05-08 19:07:45 +09:00
|
|
|
}
|
2026-05-09 03:16:12 +09:00
|
|
|
})();
|