build: update autosetup for Tcl 8.5 compatibility
[jimtcl.git] / Makefile.in
blobb96f3a2e0ac5d416eb37d6056eaae49c42df5975
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 \
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@
89 install-exec: all
90 $(INSTALL_DATA_DIR) $(DESTDIR)@bindir@
91 $(INSTALL_PROGRAM) $(JIMSH) $(DESTDIR)@bindir@
93 uninstall:
94 rm -f $(DESTDIR)@bindir@/$(JIMSH)
95 rm -f $(DESTDIR)@bindir@/build-jim-ext
96 rm -f $(DESTDIR)@libdir@/$(LIBJIM)
97 for i in README.extensions @C_EXT_SHOBJS@ @TCL_EXTS@; do rm -f $(DESTDIR)@libdir@/jim/$$i; done
98 rm -f $(DESTDIR)@includedir@/jim*.h
99 rm -f $(DESTDIR)@datadir@/doc/jim/Tcl.html
100 @else
101 install install-exec: all
102 uninstall:
103 @endif
105 test check: $(JIMSH)
106 cd @srcdir@/tests; $(DEF_LD_PATH) $(MAKE) jimsh=@builddir@/jimsh TOPSRCDIR=..
108 $(OBJS) jimsh.o initjimsh.o: Makefile $(wildcard *.h)
110 @if JIM_UTF8
111 # Generate the unicode case mapping
112 utf8.o: _unicode_mapping.c
114 _unicode_mapping.c: @srcdir@/UnicodeData.txt @srcdir@/parse-unidata.tcl
115 @tclsh@ @srcdir@/parse-unidata.tcl @PARSE_UNIDATA_FLAGS@ @srcdir@/UnicodeData.txt @srcdir@/EastAsianWidth.txt >$@ || ( rm $@; exit 1)
116 @endif
118 _load-static-exts.c: @srcdir@/make-load-static-exts.tcl Makefile
119 @tclsh@ @srcdir@/make-load-static-exts.tcl @STATIC_EXTS@ >$@ || ( rm $@; exit 1)
121 @if JIM_STATICLIB
122 $(LIBJIM): $(OBJS)
123 $(AR) cr $@ $(OBJS)
124 $(RANLIB) $@
125 @else
126 $(LIBJIM): $(OBJS)
127 $(CC) $(CFLAGS) $(LDFLAGS) $(SH_LDFLAGS) -o $@ $(OBJS) $(LDLIBS) $(LIBS)
128 @endif
130 # Note that $> $^ is for compatibility with both GNU make and BSD make
131 readdir.so: jim-readdir.c
132 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-readdir.o $> $^
133 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-readdir.o $(SH_LIBJIM)
135 array.so: jim-array.c
136 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-array.o $> $^
137 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-array.o $(SH_LIBJIM)
139 clock.so: jim-clock.c
140 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-clock.o $> $^
141 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-clock.o $(SH_LIBJIM)
143 file.so: jim-file.c
144 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-file.o $> $^
145 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-file.o $(SH_LIBJIM)
147 interp.so: jim-interp.c
148 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-interp.o jim-interp.c
149 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-interp.o $(SH_LIBJIM) @LDLIBS_interp@
151 posix.so: jim-posix.c
152 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-posix.o $> $^
153 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-posix.o $(SH_LIBJIM)
155 regexp.so: jim-regexp.c
156 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-regexp.o $> $^
157 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-regexp.o $(SH_LIBJIM)
159 syslog.so: jim-syslog.c
160 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-syslog.o $> $^
161 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-syslog.o $(SH_LIBJIM)
163 readline.so: jim-readline.c
164 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-readline.o $> $^
165 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-readline.o $(SH_LIBJIM) @LDLIBS_readline@
167 pack.so: jim-pack.c
168 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-pack.o $> $^
169 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-pack.o $(SH_LIBJIM) @LDLIBS_pack@
171 tclprefix.so: jim-tclprefix.c
172 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-tclprefix.o $> $^
173 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-tclprefix.o $(SH_LIBJIM) @LDLIBS_tclprefix@
175 sqlite3.so: jim-sqlite3.c
176 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-sqlite3.o $> $^
177 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-sqlite3.o $(SH_LIBJIM) @LDLIBS_sqlite3@
179 win32.so: jim-win32.c
180 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-win32.o $> $^
181 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-win32.o $(SH_LIBJIM) @LDLIBS_win32@
183 mk.so: jim-mk.cpp
184 $(CXX) $(CXXFLAGS) $(SHOBJ_CFLAGS) -c -o jim-mk.o $> $^
185 $(CXX) $(CXXFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-mk.o $(SH_LIBJIM) @LDLIBS_mk@
187 sdl.so: jim-sdl.c
188 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-sdl.o $> $^
189 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-sdl.o $(SH_LIBJIM) @LDLIBS_sdl@
191 zlib.so: jim-zlib.c
192 $(CC) $(CFLAGS) $(SHOBJ_CFLAGS) -c -o jim-zlib.o $> $^
193 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ jim-zlib.o $(SH_LIBJIM) @LDLIBS_zlib@
195 docs: Tcl.html
197 @if INSTALL_DOCS == nodocs
198 install-docs:
199 @endif
201 @if INSTALL_DOCS == docs
202 install-docs: docs
203 $(INSTALL_DATA_DIR) $(DESTDIR)$(docdir)
204 $(INSTALL_DATA) Tcl.html $(DESTDIR)$(docdir)
205 @endif
207 @if INSTALL_DOCS == shipped
208 install-docs:
209 $(INSTALL_DATA_DIR) $(DESTDIR)$(docdir)
210 @echo "Warning: asciidoc not available - installing Tcl_shipped.html"
211 $(INSTALL_DATA) Tcl_shipped.html $(DESTDIR)$(docdir)/Tcl.html
212 @endif
214 Tcl.html: jim_tcl.txt
215 @if HAVE_ASCIIDOC
216 @tclsh@ @srcdir@/make-index $> $^ | @ASCIIDOC@ -o $@ -d manpage -
217 @else
218 @echo "asciidoc is not available"; false
219 @endif
221 clean:
222 rm -f *.o *.so *.dll *.exe lib*.a $(JIMSH) $(LIBJIM) Tcl.html _*.c
224 distclean: clean
225 rm -f jimautoconf.h jim-config.h Makefile config.log @srcdir@/autosetup/jimsh0@EXEEXT@ build-jim-ext
227 ship: Tcl.html
228 cp $< Tcl_shipped.html
230 # automake compatibility. do nothing for all these targets
231 EMPTY_AUTOMAKE_TARGETS := dvi pdf ps info html tags ctags mostlyclean maintainer-clean check installcheck installdirs \
232 install-pdf install-ps install-info install-html -install-dvi uninstall install-data
233 .PHONY: $(EMPTY_AUTOMAKE_TARGETS)
234 $(EMPTY_AUTOMAKE_TARGETS):
236 # automake compatibility - install sources from the current dir to $(distdir)
237 distdir_full := $(shell cd $(distdir); pwd)
238 distdir:
239 cd "@srcdir@"; git ls-files | cpio -pdmu $(distdir_full)
241 reconfig:
242 CC='@CC@' @AUTOREMAKE@