Skip to content
Snippets Groups Projects
Select Git revision
  • 1884544c1e237a4fc8fe5c24631f66149368d9e5
  • main default protected
  • v0.1
3 results

build.php

  • build.php 1.99 KiB
    #!/bin/env php
    <?php
    
    require("inc_vars.php");
    require("inc_functions.php");
    
    $INFILE="$selfdir/src/amcli.php";
    $INCFILE="$selfdir/src/include_checks.php";
    $TMPFILE="$selfdir/src/amcli.php.tmp";
    
    $OUTFILE="$selfdir/$dirPackages/".str_replace('.php', '', basename($INFILE)).$myosextension;
    $OUTFILE2="$selfdir/$dirPackages/".str_replace('.php', '', basename($INFILE)).'_'.$myarchitecture.$myosextension;
    
    
    echo "
    
        B U I L D E R
    
    
    
    ";
    
    _chdir($selfdir);
    _mkdir($dirPackages);
    
    // ----------------------------------------------------------------------
    
    _h1("Check target file");
    if(file_exists($OUTFILE)){
        echo "INFO: output file '$OUTFILE' already exists.\n";
        $ts_in=filemtime($INFILE);
        $ts_out=filemtime($OUTFILE);
        if($ts_in>$ts_out){
            echo "INFO: Source file '$INFILE' is newer than '$OUTFILE'. Compiling changes...\n";
        } else {
            echo "INFO: Source is unchanged since last build..\n";
        }
    }
    
    // ----------------------------------------------------------------------
    
    _h1("Prepare source");
    $in=file_get_contents($INFILE);
    $inccode=file_get_contents($INCFILE);
    $inccode=str_replace("<?php", "", $inccode);
    
    $tempcode=preg_replace("#\/\/ ---MARK---INCLUDE-CHECKS---START---.*---MARK---INCLUDE-CHECKS---END#s", "$inccode", $in);
    
    if(file_put_contents($TMPFILE, $tempcode)){
        _ok("$TMPFILE was written");
    }
    
    // ----------------------------------------------------------------------
    
    _h1("Compile");
    _chdir("$selfdir/$dirBuild");
    _exec("$SPC \
        micro:combine \
        '$TMPFILE' \
        -O '$OUTFILE'");
    
    // if(unlink($TMPFILE)){
    //     echo "Cleanup: $TMPFILE was deleted\n";
    // }
    
    // ----------------------------------------------------------------------
    
    _h1("Test generated binary");
    
    _exec("file '$OUTFILE'");
    _exec("'$OUTFILE' --ini=../src/simple.ini");
    
    _h1("Write architecture specific binary");
    _exec("cp '$OUTFILE' '$OUTFILE2'");
    
    
    // ----------------------------------------------------------------------
    
    _h1("Done");
    
    // ----------------------------------------------------------------------