5 # make V=1 for verbose make output
9 ifeq ("$(origin V)", "command line")
23 export CCACHE_DISABLE
:= 1
28 SH_CFLAGS ?
= @SH_CFLAGS@
29 SH_LDFLAGS ?
= @SH_LDFLAGS@
31 SH_LDFLAGS
+= @SH_SOPREFIX@libjim@LIBSOEXT@
33 SHOBJ_CFLAGS ?
= @SHOBJ_CFLAGS@
35 SHOBJ_LDFLAGS ?
= @SHOBJ_LDFLAGS@
37 SHOBJ_LDFLAGS ?
= @SHOBJ_LDFLAGS_R@
39 CFLAGS
= @CFLAGS@ @CCOPTS@ @CPPFLAGS@
40 CXXFLAGS
= @CXXFLAGS@ @CXXOPTS@
44 exec_prefix ?
= @
exec_prefix@
48 CC
+= -Wall
$(OPTIM
) -I.
49 CXX
+= -Wall
$(OPTIM
) -I.
50 @if
[get-define
srcdir] ne
"."
52 CXXFLAGS
+= -I@
srcdir@
59 LIBJIM
:= libjim@LIBSOEXT@
60 SH_LIBJIM
:= $(LIBJIM
)
63 DEF_LD_PATH
:= @LD_LIBRARY_PATH@
="@builddir@:$(@LD_LIBRARY_PATH@)"
66 @if HAVE_CXX_EXTENSIONS
67 JIMSH_CC
:= $(CXX
) $(CXXFLAGS
)
69 JIMSH_CC
:= $(CC
) $(CFLAGS
)
72 OBJS
:= _load-static-exts.o jim-subcmd.o jim-interactive.o jim-format.o jim.o utf8.o jimregexp.o jimiocompat.o \
73 @EXTRA_OBJS@ @C_EXT_OBJS@ @TCL_EXT_OBJS@
75 JIMSH
:= jimsh@EXEEXT@
78 INSTALL_DATA_DIR ?
= mkdir
-p
83 all: $(JIMSH
) @C_EXT_SHOBJS@
85 # Create C extensions from pure Tcl extensions
88 $(ECHO
) " TCLEXT _$*.c"
89 $(Q
)@tclsh@ @
srcdir@
/make-c-ext.tcl
$< >_
$*.c
91 $(Q
)$(CC
) $(CFLAGS
) -c
-o
$@ _
$*.c
95 $(Q
)$(CC
) $(CFLAGS
) $(CPPFLAGS
) $(TARGET_ARCH
) -c
$< -o
$@
97 $(JIMSH
): $(LIBJIM
) jimsh.o initjimsh.o
99 $(Q
)$(JIMSH_CC
) @SH_LINKRPATH_FLAGS@ @SH_LINKFLAGS@
$(LDFLAGS
) -o
$@ jimsh.o initjimsh.o
$(LIBJIM
) $(LDLIBS
) $(LIBS
)
102 install: all @TCL_EXTS@ install-exec install-docs
103 $(INSTALL_DATA_DIR
) $(DESTDIR
)@
libdir@
/jim
104 $(INSTALL_DATA
) $(LIBJIM
) $(DESTDIR
)@
libdir@
105 $(INSTALL_DATA
) @
srcdir@
/README.extensions @C_EXT_SHOBJS@
$(DESTDIR
)@
libdir@
/jim
106 for i in tcltest.tcl @TCL_EXTS@
; do
$(INSTALL_DATA
) @
srcdir@
/$$i $(DESTDIR
)@
libdir@
/jim
; done
107 $(INSTALL_DATA_DIR
) $(DESTDIR
)@
includedir@
108 $(INSTALL_DATA
) @
srcdir@
/jim.h @
srcdir@
/jim-eventloop.h @
srcdir@
/jim-signal.h \
109 @
srcdir@
/jim-subcmd.h @
srcdir@
/jim-win32compat.h
$(DESTDIR
)@
includedir@
110 $(INSTALL_DATA
) jim-config.h
$(DESTDIR
)@
includedir@
111 $(INSTALL_DATA_DIR
) $(DESTDIR
)@
bindir@
112 $(INSTALL_DATA
) build-jim-ext
$(DESTDIR
)@
bindir@
113 $(INSTALL_DATA_DIR
) $(DESTDIR
)@
libdir@
/pkgconfig
114 $(INSTALL_DATA
) jimtcl.
pc $(DESTDIR
)@
libdir@
/pkgconfig
117 $(INSTALL_DATA_DIR
) $(DESTDIR
)@
bindir@
118 $(INSTALL_PROGRAM
) $(JIMSH
) $(DESTDIR
)@
bindir@
121 rm -f
$(DESTDIR
)@
bindir@
/$(JIMSH
)
122 rm -f
$(DESTDIR
)@
bindir@
/build-jim-ext
123 rm -f
$(DESTDIR
)@
libdir@
/$(LIBJIM
)
124 for i in README.extensions @C_EXT_SHOBJS@ @TCL_EXTS@
; do
rm -f
$(DESTDIR
)@
libdir@
/jim
/$$i; done
125 rm -f
$(DESTDIR
)@
includedir@
/jim
*.h
126 rm -f
$(DESTDIR
)@
datadir@
/doc
/jim
/Tcl.html
128 install install-exec
: all
133 cd @
srcdir@
/tests
; $(DEF_LD_PATH
) $(MAKE
) jimsh
=@builddir@
/jimsh TOPSRCDIR
=..
135 $(OBJS
) jimsh.o initjimsh.o
: Makefile
$(wildcard *.h
)
138 # Generate the unicode case mapping
139 utf8.o
: _unicode_mapping.c
141 _unicode_mapping.c
: @
srcdir@
/UnicodeData.txt @
srcdir@
/parse-unidata.tcl
142 $(ECHO
) " UNIDATA $@"
143 $(Q
)@tclsh@ @
srcdir@
/parse-unidata.tcl @PARSE_UNIDATA_FLAGS@ @
srcdir@
/UnicodeData.txt @
srcdir@
/EastAsianWidth.txt
>$@ ||
( rm $@
; exit
1)
146 _load-static-exts.c
: @
srcdir@
/make-load-static-exts.tcl Makefile
147 $(ECHO
) " MKLDEXT $@"
148 $(Q
)@tclsh@ @
srcdir@
/make-load-static-exts.tcl @STATIC_EXTS@
>$@ ||
( rm $@
; exit
1)
153 $(Q
)$(AR
) cr
$@
$(OBJS
)
157 $(Q
)$(CC
) $(CFLAGS
) $(LDFLAGS
) $(SH_LDFLAGS
) -o
$@
$(OBJS
) $(LDLIBS
) $(LIBS
)
164 @if INSTALL_DOCS eq
"nodocs"
168 @if INSTALL_DOCS eq
"docs"
170 $(INSTALL_DATA_DIR
) $(DESTDIR
)$(docdir
)
171 $(INSTALL_DATA
) Tcl.html
$(DESTDIR
)$(docdir
)
174 @if INSTALL_DOCS eq
"shipped"
176 $(INSTALL_DATA_DIR
) $(DESTDIR
)$(docdir
)
177 @echo
"Warning: asciidoc not available - installing Tcl_shipped.html"
178 $(INSTALL_DATA
) Tcl_shipped.html
$(DESTDIR
)$(docdir
)/Tcl.html
181 Tcl.html
: jim_tcl.txt @
srcdir@
/make-index
183 @tclsh@ @
srcdir@
/make-index
$> $^ | @ASCIIDOC@
-d manpage
- | @SED@
-e
'/^<div.*id="footer-text"/,/<\/div>/d' >$@
185 @echo
"asciidoc is not available"; false
190 @if COVERAGE_TOOL eq
"lcov"
191 @LCOV@
-c
--rc genhtml_branch_coverage
=1 -d .
-o lcov.txt
192 @GENHTML@
--rc genhtml_branch_coverage
=1 -o coverage_html lcov.txt
> genhtml_output.txt
193 @LCOV@
--summary lcov.txt
195 @if COVERAGE_TOOL eq
"gcovr"
196 @GCOVR@
-s
-e
'conftest*' --html
--html-details
--output coverage.html
198 @if COVERAGE_TOOL eq
"gcov"
202 @echo
"Use ./configure --coverage to enable code coverage"
206 rm -f
*.o
*.so
*.dll
*.exe lib
*.a
$(JIMSH
) $(LIBJIM
) Tcl.html _
*.c
208 rm -f
*.gcno
*.gcov
*.gcda
*/*.gcno
*/*.gcda
*/*.gcov coverage
*.html
209 rm -rf coverage_html lcov.txt genhtml_output.txt
213 rm -f jimautoconf.h jim-config.h Makefile config.log @
srcdir@
/autosetup
/jimsh0@EXEEXT@ build-jim-ext
214 rm -f jimtcl.
pc tests
/Makefile
217 cp
$< Tcl_shipped.html
219 # automake compatibility. do nothing for all these targets
220 EMPTY_AUTOMAKE_TARGETS
:= dvi pdf ps
info html
tags ctags
mostlyclean maintainer-clean
check installcheck installdirs \
221 install-pdf install-ps install-info install-html
-install-dvi
uninstall install-data
222 .PHONY
: $(EMPTY_AUTOMAKE_TARGETS
)
223 $(EMPTY_AUTOMAKE_TARGETS
):
225 # automake compatibility - install sources from the current dir to $(distdir)
226 distdir_full
:= $(shell cd
$(distdir
); pwd
)
228 cd
"@srcdir@"; git ls-files | cpio
-pdmu
$(distdir_full
)
231 CC
='@CC@' @AUTOREMAKE@