MXS-2732 Rename sqlite-src-3110100 to sqlite-src-3110100.old
Originally, the sqlite installation was imported into the MaxScale repository in the one gigantic MaxScale 1.4 -> 2.0 commit. Consequently, there is no import commit to compare to if you want to extract all MaxScale specific changes. To make it simpler in the future, sqlite will now be imported in a commit of its own.
This commit is contained in:
@ -0,0 +1,82 @@
|
||||
#!/usr/bin/tclsh
|
||||
#
|
||||
# This script splits the sqlite3.c amalgamated source code files into
|
||||
# several smaller files such that no single files is more than a fixed
|
||||
# number of lines in length (32k or 64k). Each of the split out files
|
||||
# is #include-ed by the master file.
|
||||
#
|
||||
# Splitting files up this way allows them to be used with older compilers
|
||||
# that cannot handle really long source files.
|
||||
#
|
||||
set MAX 32768 ;# Maximum number of lines per file.
|
||||
|
||||
set BEGIN {^/\*+ Begin file ([a-zA-Z0-9_.]+) \*+/}
|
||||
set END {^/\*+ End of %s \*+/}
|
||||
|
||||
set in [open sqlite3.c]
|
||||
set out1 [open sqlite3-all.c w]
|
||||
|
||||
# Copy the header from sqlite3.c into sqlite3-all.c
|
||||
#
|
||||
while {[gets $in line]} {
|
||||
if {[regexp $BEGIN $line]} break
|
||||
puts $out1 $line
|
||||
}
|
||||
|
||||
# Gather the complete content of a file into memory. Store the
|
||||
# content in $bufout. Store the number of lines is $nout
|
||||
#
|
||||
proc gather_one_file {firstline bufout nout} {
|
||||
regexp $::BEGIN $firstline all filename
|
||||
set end [format $::END $filename]
|
||||
upvar $bufout buf $nout n
|
||||
set buf $firstline\n
|
||||
global in
|
||||
set n 0
|
||||
while {[gets $in line]>=0} {
|
||||
incr n
|
||||
append buf $line\n
|
||||
if {[regexp $end $line]} break
|
||||
}
|
||||
}
|
||||
|
||||
# Write a big chunk of text in to an auxiliary file "sqlite3-NNN.c".
|
||||
# Also add an appropriate #include to sqlite3-all.c
|
||||
#
|
||||
set filecnt 0
|
||||
proc write_one_file {content} {
|
||||
global filecnt
|
||||
incr filecnt
|
||||
set out [open sqlite3-$filecnt.c w]
|
||||
puts -nonewline $out $content
|
||||
close $out
|
||||
puts $::out1 "#include \"sqlite3-$filecnt.c\""
|
||||
}
|
||||
|
||||
# Continue reading input. Store chunks in separate files and add
|
||||
# the #includes to the main sqlite3-all.c file as necessary to reference
|
||||
# the extra chunks.
|
||||
#
|
||||
set all {}
|
||||
set N 0
|
||||
while {[regexp $BEGIN $line]} {
|
||||
set buf {}
|
||||
set n 0
|
||||
gather_one_file $line buf n
|
||||
if {$n+$N>=$MAX} {
|
||||
write_one_file $all
|
||||
set all {}
|
||||
set N 0
|
||||
}
|
||||
append all $buf
|
||||
incr N $n
|
||||
while {[gets $in line]>=0} {
|
||||
if {[regexp $BEGIN $line]} break
|
||||
puts $out1 $line
|
||||
}
|
||||
}
|
||||
if {$N>0} {
|
||||
write_one_file $all
|
||||
}
|
||||
close $out1
|
||||
close $in
|
||||
Reference in New Issue
Block a user