6 CFLAGS
=${CFLAGS:- -ansi -Wall -Wextra -g -O2}
9 RANLIB
=${RANLIB:-ranlib}
11 JIM_CFLAGS
="-D_GNU_SOURCE -Wall -I. -g -O2 -fno-unwind-tables -fno-asynchronous-unwind-tables"
19 echo "$1" |
sed 's/\(.*\)\.[^\.]*$/\1/'
22 JIM_CSRC
="_load-static-exts.c jim-subcmd.c jim-interactive.c jim-format.c
23 jim.c utf8.c jimregexp.c jim-aio.c jim-array.c jim-clock.c
24 jim-exec.c jim-file.c jim-namespace.c jim-pack.c jim-package.c
25 jim-posix.c jim-readdir.c jim-regexp.c jim-signal.c
26 jim-tclprefix.c _binary.c _glob.c _nshelper.c _oo.c _stdlib.c
29 JIM_TCLSRC
="binary.tcl glob.tcl nshelper.tcl oo.tcl stdlib.tcl
30 tclcompat.tcl tree.tcl initjimsh.tcl"
32 JIM_STATIC_EXTS
="aio array clock exec file namespace pack
33 package posix readdir regexp signal tclprefix
34 binary glob nshelper oo stdlib tclcompat tree"
36 # Build the bootstrap JimTcl interpreter
38 $CC -o ..
/jimsh0 jimsh0.c
2>/dev
/null
)
40 # Build the real JimTcl interpreter and library
42 echo '#define JIM_EMBEDDED' > _load-static-exts.c
;
43 echo "./jimsh0 make-load-static-exts.tcl $JIM_STATIC_EXTS >> _load-static-exts.c";
44 .
/jimsh0 make-load-static-exts.tcl
$JIM_STATIC_EXTS >> _load-static-exts.c
46 for tclfile
in $JIM_TCLSRC; do
47 echo '#define JIM_EMBEDDED' > _$
(rootname
$tclfile).c
;
48 echo "./jimsh0 make-c-ext.tcl $tclfile >> _$(rootname $tclfile).c"
49 .
/jimsh0 make-c-ext.tcl
$tclfile >> _$
(rootname
$tclfile).c
;
53 for cfile
in $JIM_CSRC; do
54 JIM_OBJS
="$JIM_OBJS $(rootname $cfile).o";
55 run
$CC $JIM_CFLAGS -o $
(rootname
$cfile).o
-c $cfile;
58 run
$AR cr libjim.a
$JIM_OBJS;
63 run
$CC -o sqlite3.o
-c jimtcl
/sqlite
3/sqlite3.c \
64 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 \
65 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_STAT3 \
66 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_OMIT_INCRBLOB
69 C_SRC
="tmake.c tm_crypto.c tm_target.c tm_update.c tm_core_cmds.c tm_ext_cmds.c"
71 MAKE_C_EXT
="jimtcl/jimsh jimtcl/make-c-ext.tcl tm_ext_cmds.tcl"
72 echo "$MAKE_C_EXT > tm_ext_cmds.c"
73 echo "#define JIM_EMBEDDED" > tm_ext_cmds.c
74 $MAKE_C_EXT >> tm_ext_cmds.c
77 TM_MACHINE_ARCH
=$
(uname
-m)
79 run
$CC -o tmk
$CFLAGS -Ijimtcl -Ijimtcl/sqlite3 \
80 -DTM_OPSYS="\"$TM_OPSYS\"" -DTM_MACHINE_ARCH="\"$TM_MACHINE_ARCH\"" \
81 $C_SRC jimtcl
/libjim.a sqlite3.o
-lm