15
15
# HACK
16
16
import os , sys
17
17
18
+ import time
19
+ now = time .time ()
20
+ gmtime = time .gmtime (now )
21
+
18
22
from os .path import join
19
23
import fnmatch
20
24
@@ -430,44 +434,72 @@ def find_grammar(build_dir):
430
434
431
435
flx_find_grammar_files .run (build_dir )
432
436
433
- def write_script (version ):
437
+ def write_script (buildroot , version ):
434
438
Path ("installscript" ).makedirs ()
435
439
f = open (Path ("installscript" ) / "posixinstall.sh" ,"w" )
436
- f .write (r"rm -rfd /usr/local/lib/felix/felix-" + version + r"" )
437
- f .write (r"mkdir -p /usr/local/lib/felix/felix-" + version + r"/share" )
438
- f .write (r"mkdir -p /usr/local/lib/felix/felix-" + version + r"/host" )
439
- f .write (r"cp -r build/release/share/* /usr/local/lib/felix/felix-" + version + r"/share" )
440
- f .write (r"cp -r build/release/host/* /usr/local/lib/felix/felix-" + version + r"/host" )
440
+ f .write (r"rm -rfd /usr/local/lib/felix/felix-" + version + r"" + " \n " )
441
+ f .write (r"mkdir -p /usr/local/lib/felix/felix-" + version + r"/share" + " \n " )
442
+ f .write (r"mkdir -p /usr/local/lib/felix/felix-" + version + r"/host" + " \n " )
443
+ f .write (r"cp -r build/release/share/* /usr/local/lib/felix/felix-" + version + r"/share" + " \n " )
444
+ f .write (r"cp -r build/release/host/* /usr/local/lib/felix/felix-" + version + r"/host" + " \n " )
441
445
f .close ()
442
446
443
447
f = open (Path ("installscript" ) / "win32install.bat" ,"w" )
444
448
f .write (r"@echo off" )
445
- f .write (r"mkdir c:\usr\local\lib\felix\felix-" + version + r"\crap" )
446
- f .write (r"rmdir /S /Q c:\usr\local\lib\felix\felix-" + version + r"" )
447
- f .write (r"mkdir c:\usr\local\lib\felix\felix-" + version + r"\share" )
448
- f .write (r"mkdir c:\usr\local\lib\felix\felix-" + version + r"\host" )
449
- f .write (r"xcopy /E build\release\share\* c:\usr\local\lib\felix\felix-" + version + r"\share" )
450
- f .write (r"xcopy /E build\release\host\* c:\usr\local\lib\felix\felix-" + version + r"\host" )
449
+ f .write (r"mkdir c:\usr\local\lib\felix\felix-" + version + r"\crap" + " \n " )
450
+ f .write (r"rmdir /S /Q c:\usr\local\lib\felix\felix-" + version + r"" + " \n " )
451
+ f .write (r"mkdir c:\usr\local\lib\felix\felix-" + version + r"\share" + " \n " )
452
+ f .write (r"mkdir c:\usr\local\lib\felix\felix-" + version + r"\host" + " \n " )
453
+ f .write (r"xcopy /E build\release\share\* c:\usr\local\lib\felix\felix-" + version + r"\share" + " \n " )
454
+ f .write (r"xcopy /E build\release\host\* c:\usr\local\lib\felix\felix-" + version + r"\host" + " \n " )
451
455
f .close ()
452
456
453
457
f = open (Path ("installscript" ) / "linuxsetup.sh" ,"w" )
454
- f .write (r"export PATH=/usr/local/lib/felix/felix-" + version + r"/host/bin:$PATH" )
455
- f .write (r"export LD_LIBRARY_PATH=/usr/local/lib/felix/felix-" + version + r"/host/lib/rtl:$LD_LIBRARY_PATH" )
458
+ f .write (r"export PATH=/usr/local/lib/felix/felix-" + version + r"/host/bin:$PATH" + " \n " )
459
+ f .write (r"export LD_LIBRARY_PATH=/usr/local/lib/felix/felix-" + version + r"/host/lib/rtl:$LD_LIBRARY_PATH" + " \n " )
456
460
f .close ()
457
461
458
462
f = open (Path ("installscript" ) / "osxsetup.sh" ,"w" )
459
- f .write (r"export PATH=/usr/local/lib/felix/felix-" + version + r"/host/bin:$PATH" )
460
- f .write (r"export DYLD_LIBRARY_PATH=/usr/local/lib/felix/felix-" + version + r"/host/lib/rtl:$DYLD_LIBRARY_PATH" )
463
+ f .write (r"export PATH=/usr/local/lib/felix/felix-" + version + r"/host/bin:$PATH" + " \n " )
464
+ f .write (r"export DYLD_LIBRARY_PATH=/usr/local/lib/felix/felix-" + version + r"/host/lib/rtl:$DYLD_LIBRARY_PATH" + " \n " )
461
465
f .close ()
462
466
463
- f = open (Path ("installscript" ) / "win32setup.sh" ,"w" )
464
- f .write (r"@echo off" )
465
- f .write (r"set PATH=C:\usr\local\lib\felix\felix-" + version + r"\host\bin;C:\usr\local\lib\felix\felix-" + version + r"\host\lib\rtl;%PATH%" )
467
+ f = open (Path ("installscript" ) / "win32setup.bat" ,"w" )
468
+ f .write (r"@echo off" + "\n " )
469
+ f .write (r"set PATH=C:\usr\local\lib\felix\felix-" + version + r"\host\bin;C:\usr\local\lib\felix\felix-" + version + r"\host\lib\rtl;%PATH%" + "\n " )
470
+ f .close ()
471
+
472
+ f = open ("VERSION" ,"w" )
473
+ f .write (flx_version + "\n " )
466
474
f .close ()
467
475
468
- def set_version ():
476
+ short_time = time .strftime ("%a %d %b %Y" ,gmtime )
477
+ (buildroot / "src" / "compiler" / "flx_version_hook" ).makedirs ()
478
+ f = open (buildroot / "src" / "compiler" / "flx_version_hook" / "flx_version_hook.ml" ,"w" )
479
+ f .write ("open Flx_version\n " )
480
+ f .write ("let version_data: version_data_t =\n " )
481
+ f .write ("{\n " )
482
+ f .write (' version_string = "%s";' % flx_version + "\n " )
483
+ f .write (' build_time_float = %s;' % now + "\n " )
484
+ f .write (' build_time = "%s";' % time .ctime (now )+ "\n " )
485
+ f .write ("}\n " )
486
+ f .write (";;\n " )
487
+ f .write ("let set_version () =\n " )
488
+ f .write (" Flx_version.version_data := version_data\n " )
489
+ f .write (";;\n " )
490
+
491
+ (buildroot / "share" / "lib" / "std" ).makedirs ()
492
+ f = open (buildroot / "share" / "lib" / "std" / "version.flx" ,"w" )
493
+ f .write ("// GENERATED DURING BUILD (for version number)\n " )
494
+ f .write ("class Version\n " )
495
+ f .write ("{\n " )
496
+ f .write (' const felix_version : string = \' ::std::string("' + flx_version + '")\' ;\n ' )
497
+ f .write ("}\n " )
498
+ f .close ()
499
+
500
+ def set_version (buildroot ):
469
501
print ("FELIX VERSION " + flx_version )
470
- write_script (flx_version )
502
+ write_script (buildroot , flx_version )
471
503
472
504
@fbuild .db .caches
473
505
def configure (ctx ):
@@ -477,8 +509,6 @@ def configure(ctx):
477
509
host = config_host (ctx , build )
478
510
target = config_target (ctx , host )
479
511
480
- set_version ()
481
-
482
512
# Make sure the config directories exist.
483
513
#(ctx.buildroot / 'host/config').makedirs()
484
514
@@ -596,6 +626,8 @@ def configure(ctx):
596
626
def build (ctx ):
597
627
"""Compile Felix."""
598
628
629
+ set_version (ctx .buildroot )
630
+
599
631
print ("[fbuild] RUNNING PACKAGE MANAGER" )
600
632
tangle_packages (Path ("src" )/ "packages" , ctx .buildroot )
601
633
0 commit comments