Remove autosetup/jimsh0.exe on distclean
[jimtcl.git] / Makefile.in
blob80ea37f2a76ad2a4bd722b2e561835bcf7082c96
1 # Tools
2 CC = @CCACHE@ @CC@
3 RANLIB = @RANLIB@
4 AR = @AR@
5 STRIP = @STRIP@
7 # Configuration
9 jim_libtype := @JIM_LIBTYPE@
10 SH_CFLAGS ?= @SH_CFLAGS@
11 SH_LDFLAGS ?= @SH_LDFLAGS@
12 SHOBJ_CFLAGS ?= @SHOBJ_CFLAGS@
13 SHOBJ_LDFLAGS ?= @SHOBJ_LDFLAGS@
14 CFLAGS = @CFLAGS@
15 LDFLAGS = @LDFLAGS@
16 LDLIBS += @LIBS@
17 exec_prefix ?= @exec_prefix@
18 prefix ?= @prefix@
20 CPPFLAGS += -D_GNU_SOURCE -Wall -Werror $(OPTIM) -I.
21 ifneq (@srcdir@,.)
22 CPPFLAGS += -I@srcdir@
23 VPATH := @srcdir@
24 endif
26 ifeq ($(jim_libtype),static)
27 LIBJIM := libjim.a
28 else
29 LIBJIM := libjim.so
30 SH_LIBJIM := $(LIBJIM)
31 CPPFLAGS += $(SH_CFLAGS)
32 DEF_LD_PATH := @LD_LIBRARY_PATH@=`pwd`
33 endif
35 .EXPORT_ALL_VARIABLES:
37 OBJS := load-static-exts.o jim-subcmd.o jim-interactive.o jim-format.o jim.o utf8.o jimregexp.o @EXTRA_OBJS@
39 JIMSH := jimsh@EXEEXT@
41 EXTENSION_OBJS := $(patsubst %,jim-%.o,@JIM_EXTENSIONS@)
42 EXTENSION_MODS := $(patsubst %,%.so,@JIM_MOD_EXTENSIONS@)
43 EXTENSION_TCL := $(patsubst %,%.tcl,@JIM_TCL_EXTENSIONS@)
45 .PRECIOUS: jim-%.c
47 # Create C extensions from pure Tcl extensions
48 jim-%.c: %.tcl
49 @tclsh@ @srcdir@/make-c-ext.tcl $< >$@ || ( rm $@; exit 1)
51 all: $(JIMSH) $(EXTENSION_MODS)
53 docs: Tcl.html
55 $(JIMSH): $(LIBJIM) jimsh.o
56 $(CC) $(CFLAGS) @SH_LINKFLAGS@ $(LDFLAGS) -o $@ jimsh.o $(LIBJIM) $(LDLIBS)
58 install: all docs $(EXTENSION_TCL) install-exec
59 mkdir -p $(DESTDIR)$(prefix)/lib/jim
60 cp $(LIBJIM) $(DESTDIR)$(prefix)/lib
61 cp @srcdir@/README.extensions $(EXTENSION_MODS) $(EXTENSION_TCL) $(DESTDIR)$(prefix)/lib/jim
62 mkdir -p $(DESTDIR)$(prefix)/include
63 cp @srcdir@/jim.h @srcdir@/jim-eventloop.h @srcdir@/jim-nvp.h @srcdir@/jim-signal.h \
64 @srcdir@/jim-subcmd.h @srcdir@/jim-win32compat.h $(DESTDIR)$(prefix)/include
65 cp jim-config.h $(DESTDIR)$(prefix)/include
66 mkdir -p $(DESTDIR)$(prefix)/doc/jim
67 cp Tcl.html $(DESTDIR)$(prefix)/doc/jim
69 install-exec: all
70 mkdir -p $(DESTDIR)$(prefix)/bin
71 cp $(JIMSH) $(DESTDIR)$(prefix)/bin
73 uninstall:
74 rm -f $(DESTDIR)$(prefix)/bin/$(JIMSH)
75 rm -f $(DESTDIR)$(prefix)/lib/$(LIBJIM)
76 for i in README.extensions $(EXTENSION_MODS) $(EXTENSION_TCL); do rm -f $(DESTDIR)$(prefix)/lib/jim/$$i; done
77 rm -f $(DESTDIR)$(prefix)/include/jim*.h
78 rm -f $(DESTDIR)$(prefix)/doc/jim/Tcl.html
80 test: $(JIMSH)
81 $(DEF_LD_PATH) $(MAKE) jimsh=`pwd`/jimsh -C @srcdir@/tests
83 $(OBJS) $(EXTENSION_OBJS): Makefile
85 ifneq (@JIM_UTF8@,)
86 # Generate the unicode case mapping
87 utf8.o: unicode_mapping.c
89 unicode_mapping.c: @srcdir@/UnicodeData.txt @srcdir@/parse-unidata.tcl
90 @tclsh@ @srcdir@/parse-unidata.tcl @srcdir@/UnicodeData.txt >$@ || ( rm $@; exit 1)
91 endif
93 load-static-exts.c: @srcdir@/make-load-static-exts.tcl Makefile
94 @tclsh@ @srcdir@/make-load-static-exts.tcl @JIM_EXTENSIONS@ >$@ || ( rm $@; exit 1)
96 ifeq ($(jim_libtype),static)
97 $(LIBJIM): $(OBJS) $(EXTENSION_OBJS)
98 $(AR) cr $@ $^
99 $(RANLIB) $@
100 else
101 $(LIBJIM): $(OBJS) $(EXTENSION_OBJS)
102 $(CC) $(CFLAGS) $(LDFLAGS) $(SH_LDFLAGS) -o $@ $^ $(LDLIBS)
103 endif
105 %.so: jim-%.c
106 $(CC) $(CFLAGS) $(CPPFLAGS) $(SHOBJ_CFLAGS) -c -o $*.o $^
107 $(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ $*.o $(SH_LIBJIM) $(LDLIBS)
109 Tcl.html: jim_tcl.txt
110 @tclsh@ @srcdir@/make-index $^ | asciidoc -o $@ -d manpage - || cp @srcdir@/Tcl_shipped.html Tcl.html
112 clean:
113 rm -f *.o *.so lib*.a $(JIMSH) Tcl.html unicode_mapping.c load-static-exts.c @GENERATED_SRCS@
115 distclean: clean
116 rm -f jimautoconf.h jim-config.h Makefile config.log autosetup/jimsh0@EXEEXT@
118 ship: Tcl.html
119 cp Tcl.html Tcl_shipped.html
121 # automake compatibility. do nothing for all these targets
122 EMPTY_AUTOMAKE_TARGETS := dvi pdf ps info html tags ctags mostlyclean maintainer-clean check installcheck installdirs \
123 install-pdf install-ps install-info install-html -install-dvi uninstall install-data
124 .PHONY: $(EMPTY_AUTOMAKE_TARGETS)
125 $(EMPTY_AUTOMAKE_TARGETS):
127 # automake compatibilty - install sources from the current dir to $(distdir)
128 distdir_full := $(shell cd $(distdir); pwd)
129 distdir:
130 cd "@srcdir@"; git ls-files | cpio -pdmu $(distdir_full)
132 ifeq ($(findstring clean,$(MAKECMDGOALS)),)
133 Makefile: @AUTODEPS@ @srcdir@/Makefile.in
134 @CC='@CC@' @AUTOREMAKE@
135 endif
137 reconfig:
138 CC='@CC@' @AUTOREMAKE@