aboutsummaryrefslogtreecommitdiff
path: root/Makefile.in
blob: 372067c71d6d8d589ae9428ca788d65cdb7c7b91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# Tools
CC = @CCACHE@ @CC@
RANLIB = @RANLIB@
AR = @AR@
STRIP = @STRIP@

# Configuration

jim_libtype := @JIM_LIBTYPE@
SH_CFLAGS ?= @SH_CFLAGS@
SH_LDFLAGS ?= @SH_LDFLAGS@
SHOBJ_CFLAGS ?= @SHOBJ_CFLAGS@
SHOBJ_LDFLAGS ?= @SHOBJ_LDFLAGS@
CFLAGS = @CFLAGS@
LDFLAGS = @LDFLAGS@
LDLIBS += @LIBS@
exec_prefix ?= @exec_prefix@
prefix ?= @prefix@

CPPFLAGS += -D_GNU_SOURCE -Wall -Werror $(OPTIM) -I.
ifneq (@srcdir@,.)
CPPFLAGS += -I@srcdir@
VPATH := @srcdir@
endif

ifeq ($(jim_libtype),static)
	LIBJIM := libjim.a
else
	LIBJIM := libjim.so
	SH_LIBJIM := $(LIBJIM)
	CPPFLAGS += $(SH_CFLAGS)
	DEF_LD_PATH := @LD_LIBRARY_PATH@=`pwd` 
endif

.EXPORT_ALL_VARIABLES:

OBJS := jim-subcmd.o jim-interactive.o jim-format.o jim.o utf8.o jimregexp.o @EXTRA_OBJS@

JIMSH := jimsh@EXEEXT@

EXTENSION_OBJS := $(patsubst %,jim-%.o,@JIM_EXTENSIONS@)
EXTENSION_MODS := $(patsubst %,%.so,@JIM_MOD_EXTENSIONS@)
EXTENSION_TCL := $(patsubst %,%.tcl,@JIM_TCL_EXTENSIONS@)

.PRECIOUS: jim-%.c

# Create C extensions from pure Tcl extensions
jim-%.c: %.tcl
	sh @srcdir@/make-c-ext.sh $< >$@

OBJS += jim-load-static-exts.o

all: $(JIMSH) $(EXTENSION_MODS)

docs: Tcl.html

$(JIMSH): $(LIBJIM) jimsh.o
	$(CC) $(CFLAGS) @SH_LINKFLAGS@ $(LDFLAGS) -o $@ jimsh.o $(LIBJIM) $(LDLIBS)

install: all docs $(EXTENSION_TCL)

	mkdir -p $(DESTDIR)$(prefix)/bin
	cp $(JIMSH) $(DESTDIR)$(prefix)/bin
	mkdir -p $(DESTDIR)$(prefix)/lib/jim
	cp $(LIBJIM) $(DESTDIR)$(prefix)/lib
	cp @srcdir@/README.extensions $(EXTENSION_MODS) $(EXTENSION_TCL) $(DESTDIR)$(prefix)/lib/jim
	mkdir -p $(DESTDIR)$(prefix)/include
	cp @srcdir@/jim.h @srcdir@/jim-eventloop.h @srcdir@/jim-nvp.h @srcdir@/jim-signal.h \
		@srcdir@/jim-subcmd.h @srcdir@/jim-win32compat.h $(DESTDIR)$(prefix)/include
	cp jim-config.h $(DESTDIR)$(prefix)/include
	mkdir -p $(DESTDIR)$(prefix)/doc/jim
	cp Tcl.html $(DESTDIR)$(prefix)/doc/jim

test: $(JIMSH)
	$(DEF_LD_PATH) $(MAKE) jimsh=`pwd`/jimsh -C @srcdir@/tests

$(OBJS) $(EXTENSION_OBJS): Makefile

ifneq (@JIM_UTF8@,)
# Generate the unicode case mapping
utf8.o: unicode_mapping.c

unicode_mapping.c: @srcdir@/UnicodeData.txt @srcdir@/parse-unidata.tcl
	@tclsh@ @srcdir@/parse-unidata.tcl @srcdir@/UnicodeData.txt >$@
endif

ifeq ($(jim_libtype),static)
$(LIBJIM): $(OBJS) $(EXTENSION_OBJS)
	$(AR) cr $@ $^
	$(RANLIB) $@
else
$(LIBJIM): $(OBJS) $(EXTENSION_OBJS)
	$(CC) $(CFLAGS) $(LDFLAGS) $(SH_LDFLAGS) -o $@ $^ $(LDLIBS)
endif

%.so: jim-%.c
	$(CC) $(CFLAGS) $(CPPFLAGS) $(SHOBJ_CFLAGS) -c -o $*.o $^
	$(CC) $(CFLAGS) $(LDFLAGS) $(SHOBJ_LDFLAGS) -o $@ $*.o $(SH_LIBJIM) $(LDLIBS)

Tcl.html: jim_tcl.txt
	@tclsh@ @srcdir@/make-index $^ | asciidoc -o $@ -d manpage - || cp @srcdir@/Tcl_shipped.html Tcl.html

clean:
	rm -f *.o *.so lib*.a $(JIMSH) Tcl.html unicode_mapping.c @GENERATED_SRCS@

distclean: clean
	rm -f jimautoconf.h jim-config.h Makefile config.log

ship: Tcl.html
	cp Tcl.html Tcl_shipped.html

# automake compatibility. do nothing for all these targets
EMPTY_AUTOMAKE_TARGETS := dvi pdf ps info html tags ctags mostlyclean maintainer-clean check installcheck installdirs \
 install-pdf install-ps install-info install-html -install-dvi uninstall install-exec install-data
.PHONY: $(EMPTY_AUTOMAKE_TARGETS)
$(EMPTY_AUTOMAKE_TARGETS):

# automake compatibilty - install sources from $(srcdir) to $(distdir)
distdir:
	( test -z "$(srcdir)" || cd "$(srcdir)"; git ls-files ) | cpio -pdmu $(distdir)

ifeq ($(findstring clean,$(MAKECMDGOALS)),)
Makefile: @AUTODEPS@ @srcdir@/Makefile.in
	@CC='@CC@' @AUTOREMAKE@
endif

reconfig:
	CC='@CC@' @AUTOREMAKE@