interp: command should be created in the global namespace
[jimtcl.git] / Makefile.in
blobbe663abee589aa4fea2b8cd7064c69612dd3e5fa
1 # Tools
2 CC = @CCACHE@ @CC@
3 CXX = @CCACHE@ @CXX@
4 RANLIB = @RANLIB@
5 AR = @AR@
6 STRIP = @STRIP@
8 # Configuration
10 SH_CFLAGS ?= @SH_CFLAGS@
11 SH_LDFLAGS ?= @SH_LDFLAGS@
12 @if SH_SOPREFIX
13 SH_LDFLAGS += @SH_SOPREFIX@libjim@LIBSOEXT@
14 @endif
15 SHOBJ_CFLAGS ?= @SHOBJ_CFLAGS@
16 @if JIM_STATICLIB
17 SHOBJ_LDFLAGS ?= @SHOBJ_LDFLAGS@
18 @else
19 SHOBJ_LDFLAGS ?= @SHOBJ_LDFLAGS_R@
20 @endif
21 CFLAGS = @CFLAGS@ @CCOPTS@ @CPPFLAGS@
22 CXXFLAGS = @CXXFLAGS@ @CXXOPTS@
23 LDFLAGS = @LDFLAGS@
24 LDLIBS += @LDLIBS@
25 LIBS += @LIBS@
26 exec_prefix ?= @exec_prefix@
27 prefix ?= @prefix@
28 docdir = @docdir@
30 CC += -Wall $(OPTIM) -I.
31 CXX += -Wall $(OPTIM) -I.
32 @if srcdir != .
33 CFLAGS += -I@srcdir@
34 CXXFLAGS += -I@srcdir@
35 VPATH := @srcdir@
36 @endif
38 @if JIM_STATICLIB
39 LIBJIM := libjim.a
40 @else
41 LIBJIM := libjim@LIBSOEXT@
42 SH_LIBJIM := $(LIBJIM)
43 CC += $(SH_CFLAGS)
44 CXX += $(SH_CFLAGS)
45 DEF_LD_PATH := @LD_LIBRARY_PATH@="@builddir@:$(@LD_LIBRARY_PATH@)"
46 @endif
48 @if HAVE_CXX_EXTENSIONS
49 JIMSH_CC := $(CXX) $(CXXFLAGS)
50 @else
51 JIMSH_CC := $(CC) $(CFLAGS)
52 @endif
54 OBJS := _load-static-exts.o jim-subcmd.o jim-interactive.o jim-format.o jim.o utf8.o jimregexp.o jimiocompat.o \
55 @EXTRA_OBJS@ @C_EXT_OBJS@ @TCL_EXT_OBJS@
57 JIMSH := jimsh@EXEEXT@
59 @if JIM_INSTALL
60 INSTALL_DATA_DIR ?= mkdir -p
61 INSTALL_DATA ?= cp
62 INSTALL_PROGRAM ?= cp
63 @endif
65 all: $(JIMSH) @C_EXT_SHOBJS@
67 # Create C extensions from pure Tcl extensions
68 .SUFFIXES: .tcl
69 .tcl.o:
70 @tclsh@ @srcdir@/make-c-ext.tcl $< >_$*.c
71 $(CC) $(CFLAGS) -c -o $@ _$*.c
73 $(JIMSH): $(LIBJIM) jimsh.o initjimsh.o
74 $(JIMSH_CC) @SH_LINKFLAGS@ $(LDFLAGS) -o $@ jimsh.o initjimsh.o $(LIBJIM) $(LDLIBS) $(LIBS)
76 @if JIM_INSTALL
77 install: all @TCL_EXTS@ install-exec install-docs
78 $(INSTALL_DATA_DIR) $(DESTDIR)@libdir@/jim
79 $(INSTALL_DATA) $(LIBJIM) $(DESTDIR)@libdir@
80 $(INSTALL_DATA) @srcdir@/README.extensions @C_EXT_SHOBJS@ $(DESTDIR)@libdir@/jim
81 for i in tcltest.tcl @TCL_EXTS@; do $(INSTALL_DATA) @srcdir@/$$i $(DESTDIR)@libdir@/jim; done
82 $(INSTALL_DATA_DIR) $(DESTDIR)@includedir@
83 $(INSTALL_DATA) @srcdir@/jim.h @srcdir@/jim-eventloop.h @srcdir@/jim-signal.h \
84 @srcdir@/jim-subcmd.h @srcdir@/jim-win32compat.h $(DESTDIR)@includedir@
85 $(INSTALL_DATA) jim-config.h $(DESTDIR)@includedir@
86 $(INSTALL_DATA_DIR) $(DESTDIR)@bindir@
87 $(INSTALL_DATA) build-jim-ext $(DESTDIR)@bindir@
88 $(INSTALL_DATA) jimtcl.pc $(DESTDIR)@libdir@/pkgconfig
90 install-exec: all
91 $(INSTALL_DATA_DIR) $(DESTDIR)@bindir@
92 $(INSTALL_PROGRAM) $(JIMSH) $(DESTDIR)@bindir@
94 uninstall:
95 rm -f $(DESTDIR)@bindir@/$(JIMSH)
96 rm -f $(DESTDIR)@bindir@/build-jim-ext
97 rm -f $(DESTDIR)@libdir@/$(LIBJIM)
98 for i in README.extensions @C_EXT_SHOBJS@ @TCL_EXTS@; do rm -f $(DESTDIR)@libdir@/jim/$$i; done
99 rm -f $(DESTDIR)@includedir@/jim*.h
100 rm -f $(DESTDIR)@datadir@/doc/jim/Tcl.html
101 @else
102 install install-exec: all
103 uninstall:
104 @endif
106 test check: $(JIMSH)
107 cd @srcdir@/tests; $(DEF_LD_PATH) $(MAKE) jimsh=@builddir@/jimsh TOPSRCDIR=..
109 $(OBJS) jimsh.o initjimsh.o: Makefile $(wildcard *.h)
111 @if JIM_UTF8
112 # Generate the unicode case mapping
113 utf8.o: _unicode_mapping.c
115 _unicode_mapping.c: @srcdir@/UnicodeData.txt @srcdir@/parse-unidata.tcl
116 @tclsh@ @srcdir@/parse-unidata.tcl @PARSE_UNIDATA_FLAGS@ @srcdir@/UnicodeData.txt @srcdir@/EastAsianWidth.txt >$@ || ( rm $@; exit 1)
117 @endif
119 _load-static-exts.c: @srcdir@/make-load-static-exts.tcl Makefile
120 @tclsh@ @srcdir@/make-load-static-exts.tcl @STATIC_EXTS@ >$@ || ( rm $@; exit 1)
122 @if JIM_STATICLIB
123 $(LIBJIM): $(OBJS)
124 $(AR) cr $@ $(OBJS)
125 $(RANLIB) $@
126 @else
127 $(LIBJIM): $(OBJS)
128 $(CC) $(CFLAGS) $(LDFLAGS) $(SH_LDFLAGS) -o $@ $(OBJS) $(LDLIBS) $(LIBS)
129 @endif
131 # Note that $> $^ is for compatibility with both GNU make and BSD make
132 readdir.so: jim-readdir.c
133 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-readdir.o $> $^
134 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-readdir.o $(SH_LIBJIM)
136 array.so: jim-array.c
137 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-array.o $> $^
138 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-array.o $(SH_LIBJIM)
140 clock.so: jim-clock.c
141 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-clock.o $> $^
142 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-clock.o $(SH_LIBJIM)
144 file.so: jim-file.c
145 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-file.o $> $^
146 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-file.o $(SH_LIBJIM)
148 interp.so: jim-interp.c
149 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-interp.o jim-interp.c
150 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-interp.o $(SH_LIBJIM) @LDLIBS_interp@
152 posix.so: jim-posix.c
153 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-posix.o $> $^
154 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-posix.o $(SH_LIBJIM)
156 regexp.so: jim-regexp.c
157 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-regexp.o $> $^
158 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-regexp.o $(SH_LIBJIM)
160 syslog.so: jim-syslog.c
161 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-syslog.o $> $^
162 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-syslog.o $(SH_LIBJIM)
164 readline.so: jim-readline.c
165 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-readline.o $> $^
166 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-readline.o $(SH_LIBJIM) @LDLIBS_readline@
168 pack.so: jim-pack.c
169 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-pack.o $> $^
170 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-pack.o $(SH_LIBJIM) @LDLIBS_pack@
172 tclprefix.so: jim-tclprefix.c
173 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-tclprefix.o $> $^
174 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-tclprefix.o $(SH_LIBJIM) @LDLIBS_tclprefix@
176 sqlite3.so: jim-sqlite3.c
177 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-sqlite3.o $> $^
178 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-sqlite3.o $(SH_LIBJIM) @LDLIBS_sqlite3@
180 win32.so: jim-win32.c
181 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-win32.o $> $^
182 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-win32.o $(SH_LIBJIM) @LDLIBS_win32@
184 mk.so: jim-mk.cpp
185 $(CXX) $(CXXFLAGS) $(SHOBJ_CFLAGS) -c -o jim-mk.o $> $^
186 $(CXX) $(CXXFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-mk.o $(SH_LIBJIM) @LDLIBS_mk@
188 sdl.so: jim-sdl.c
189 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-sdl.o $> $^
190 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-sdl.o $(SH_LIBJIM) @LDLIBS_sdl@
192 zlib.so: jim-zlib.c
193 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-zlib.o $> $^
194 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-zlib.o $(SH_LIBJIM) @LDLIBS_zlib@
196 docs: Tcl.html
198 @if INSTALL_DOCS == nodocs
199 install-docs:
200 @endif
202 @if INSTALL_DOCS == docs
203 install-docs: docs
204 $(INSTALL_DATA_DIR) $(DESTDIR)$(docdir)
205 $(INSTALL_DATA) Tcl.html $(DESTDIR)$(docdir)
206 @endif
208 @if INSTALL_DOCS == shipped
209 install-docs:
210 $(INSTALL_DATA_DIR) $(DESTDIR)$(docdir)
211 @echo "Warning: asciidoc not available - installing Tcl_shipped.html"
212 $(INSTALL_DATA) Tcl_shipped.html $(DESTDIR)$(docdir)/Tcl.html
213 @endif
215 Tcl.html: jim_tcl.txt @srcdir@/make-index
216 @if HAVE_ASCIIDOC
217 @tclsh@ @srcdir@/make-index $> $^ | @ASCIIDOC@ -d manpage - | @SED@ -e '/^<div.*id="footer-text"/,/<\/div>/d' >$@
218 @else
219 @echo "asciidoc is not available"; false
220 @endif
222 clean:
223 rm -f *.o *.so *.dll *.exe lib*.a $(JIMSH) $(LIBJIM) Tcl.html _*.c
225 distclean: clean
226 rm -f jimautoconf.h jim-config.h Makefile config.log @srcdir@/autosetup/jimsh0@EXEEXT@ build-jim-ext
227 rm -f jimtcl.pc
229 ship: Tcl.html
230 cp $< Tcl_shipped.html
232 # automake compatibility. do nothing for all these targets
233 EMPTY_AUTOMAKE_TARGETS := dvi pdf ps info html tags ctags mostlyclean maintainer-clean check installcheck installdirs \
234 install-pdf install-ps install-info install-html -install-dvi uninstall install-data
235 .PHONY: $(EMPTY_AUTOMAKE_TARGETS)
236 $(EMPTY_AUTOMAKE_TARGETS):
238 # automake compatibility - install sources from the current dir to $(distdir)
239 distdir_full := $(shell cd $(distdir); pwd)
240 distdir:
241 cd "@srcdir@"; git ls-files | cpio -pdmu $(distdir_full)
243 reconfig:
244 CC='@CC@' @AUTOREMAKE@