mirror of
				https://github.com/sqlite/sqlite.git
				synced 2025-10-24 09:53:10 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			106 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Tcl
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Tcl
		
	
	
	
	
	
| #!/usr/bin/tclsh
 | |
| #
 | |
| # Run this script in order to generate a ZIP archive containing various
 | |
| # command-line tools.
 | |
| #
 | |
| # The makefile that invokes this script must first build the following
 | |
| # binaries:
 | |
| #
 | |
| #     testfixture             -- used to run this script
 | |
| #     sqlite3                 -- the SQLite CLI
 | |
| #     sqldiff                 -- Program to diff two databases
 | |
| #     sqlite3_analyzer        -- Space analyzer
 | |
| #     sqlite3_rsync           -- Remote db sync
 | |
| #
 | |
| # On Windows, add:
 | |
| #
 | |
| #     sqlite3.def
 | |
| #     sqlite3.dll
 | |
| #
 | |
| # Add the --snapshot option to generate a snapshot ZIP archive instead of
 | |
| # a release ZIP archive.
 | |
| #
 | |
| set bSnapshot 0
 | |
| for {set i 0} {$i<[llength $argv]} {incr i} {
 | |
|   set a [lindex $argv $i]
 | |
|   if {$a eq "-snapshot" || $a eq "--snapshot"} {
 | |
|     set bSnapshot 1
 | |
|     continue
 | |
|   }
 | |
|   puts stderr "unknown argument: $a"
 | |
|   exit 1
 | |
| } 
 | |
| switch $tcl_platform(os) {
 | |
|   {Windows NT} {
 | |
|     set OS win
 | |
|     set EXE .exe
 | |
|   }
 | |
|   Linux {
 | |
|     set OS linux
 | |
|     set EXE {}
 | |
|   }
 | |
|   Darwin {
 | |
|     set OS osx
 | |
|     set EXE {}
 | |
|   }
 | |
|   default {
 | |
|     set OS unknown
 | |
|     set EXE {}
 | |
|   }
 | |
| }
 | |
| switch $tcl_platform(machine) {
 | |
|   arm64 {
 | |
|     set ARCH arm64
 | |
|   }
 | |
|   x86_64 {
 | |
|     set ARCH x64
 | |
|   }
 | |
|   amd64 -
 | |
|   intel {
 | |
|     if {$tcl_platform(pointerSize)==4} {
 | |
|       set ARCH x86
 | |
|     } else {
 | |
|       set ARCH x64
 | |
|     }
 | |
|   }
 | |
|   default {
 | |
|     set ARCH unk
 | |
|   }
 | |
| }
 | |
| if {$bSnapshot} {
 | |
|   set in [open [file join [file dirname [file dirname [info script]]] manifest]]
 | |
|   set manifest [read $in]
 | |
|   close $in
 | |
|   regexp {\nD (.{16})} $manifest all date
 | |
|   regsub -all {[-:T]} $date {} v2
 | |
| } else {
 | |
|   set in [open [file join [file dirname [file dirname [info script]]] VERSION]]
 | |
|   set vers [read $in]
 | |
|   close $in
 | |
|   scan $vers %d.%d.%d v1 v2 v3
 | |
|   set v2 [format 3%02d%02d00 $v2 $v3]
 | |
| }
 | |
| 
 | |
| set name sqlite-tools-$OS-$ARCH-$v2.zip
 | |
| set filelist "sqlite3$EXE sqldiff$EXE sqlite3_analyzer$EXE sqlite3_rsync$EXE"
 | |
| proc make_zip_archive {name filelist} {
 | |
|   file delete -force $name
 | |
|   puts "fossil test-filezip $name $filelist"
 | |
|   if {[catch {exec fossil test-filezip $name {*}$filelist}]} {
 | |
|     puts "^--- Unable.  Trying again as:"
 | |
|     puts "zip $name $filelist"
 | |
|     file delete -force $name
 | |
|     exec zip $name {*}$filelist
 | |
|   }
 | |
|   puts "$name: [file size $name] bytes"
 | |
| }
 | |
| make_zip_archive $name $filelist
 | |
| 
 | |
| # On Windows, also try to construct a DLL
 | |
| #
 | |
| if {$OS eq "win" && [file exists sqlite3.dll] && [file exists sqlite3.def]} {
 | |
|   set name sqlite-dll-win-$ARCH-$v2.zip
 | |
|   set filelist [list sqlite3.def sqlite3.dll]
 | |
|   make_zip_archive $name $filelist
 | |
| }
 | 
