xref: /vim-8.2.3635/src/libvterm/Makefile (revision 476268c3)
1e4f25e4aSBram Moolenaarifeq ($(shell uname),Darwin)
2e4f25e4aSBram Moolenaar  LIBTOOL ?= glibtool
3e4f25e4aSBram Moolenaarelse
4e4f25e4aSBram Moolenaar  LIBTOOL ?= libtool
5e4f25e4aSBram Moolenaarendif
6e4f25e4aSBram Moolenaar
7e4f25e4aSBram Moolenaarifneq ($(VERBOSE),1)
8e4f25e4aSBram Moolenaar  LIBTOOL +=--quiet
9e4f25e4aSBram Moolenaarendif
10e4f25e4aSBram Moolenaar
11471f6581SBram Moolenaaroverride CFLAGS +=-Wall -Iinclude -std=c99 -Wpedantic -DINLINE=""
12e4f25e4aSBram Moolenaar
13e4f25e4aSBram Moolenaarifeq ($(shell uname),SunOS)
14e4f25e4aSBram Moolenaar  override CFLAGS +=-D__EXTENSIONS__ -D_XPG6 -D__XOPEN_OR_POSIX
15e4f25e4aSBram Moolenaarendif
16e4f25e4aSBram Moolenaar
17e4f25e4aSBram Moolenaarifeq ($(DEBUG),1)
18e4f25e4aSBram Moolenaar  override CFLAGS +=-ggdb -DDEBUG
19e4f25e4aSBram Moolenaarendif
20e4f25e4aSBram Moolenaar
21e4f25e4aSBram Moolenaarifeq ($(PROFILE),1)
22e4f25e4aSBram Moolenaar  override CFLAGS +=-pg
23e4f25e4aSBram Moolenaar  override LDFLAGS+=-pg
24e4f25e4aSBram Moolenaarendif
25e4f25e4aSBram Moolenaar
26e4f25e4aSBram MoolenaarCFILES=$(sort $(wildcard src/*.c))
27e4f25e4aSBram MoolenaarHFILES=$(sort $(wildcard include/*.h))
28e4f25e4aSBram MoolenaarOBJECTS=$(CFILES:.c=.lo)
29e4f25e4aSBram MoolenaarLIBRARY=libvterm.la
30e4f25e4aSBram Moolenaar
31e4f25e4aSBram MoolenaarBINFILES_SRC=$(sort $(wildcard bin/*.c))
32e4f25e4aSBram MoolenaarBINFILES=$(BINFILES_SRC:.c=)
33e4f25e4aSBram Moolenaar
34e4f25e4aSBram MoolenaarTBLFILES=$(sort $(wildcard src/encoding/*.tbl))
35e4f25e4aSBram MoolenaarINCFILES=$(TBLFILES:.tbl=.inc)
36e4f25e4aSBram Moolenaar
37e4f25e4aSBram MoolenaarHFILES_INT=$(sort $(wildcard src/*.h)) $(HFILES)
38e4f25e4aSBram Moolenaar
39e4f25e4aSBram MoolenaarVERSION_MAJOR=0
406fc3b59eSBram MoolenaarVERSION_MINOR=1
41e4f25e4aSBram Moolenaar
42e4f25e4aSBram MoolenaarVERSION_CURRENT=0
43e4f25e4aSBram MoolenaarVERSION_REVISION=0
44e4f25e4aSBram MoolenaarVERSION_AGE=0
45e4f25e4aSBram Moolenaar
466fc3b59eSBram MoolenaarVERSION=$(VERSION_MAJOR).$(VERSION_MINOR)
47e4f25e4aSBram Moolenaar
48e4f25e4aSBram MoolenaarPREFIX=/usr/local
49e4f25e4aSBram MoolenaarBINDIR=$(PREFIX)/bin
50e4f25e4aSBram MoolenaarLIBDIR=$(PREFIX)/lib
51e4f25e4aSBram MoolenaarINCDIR=$(PREFIX)/include
52e4f25e4aSBram MoolenaarMANDIR=$(PREFIX)/share/man
53e4f25e4aSBram MoolenaarMAN3DIR=$(MANDIR)/man3
54e4f25e4aSBram Moolenaar
5537e3edceSBram Moolenaar# Uncomment to check for memory access errors with valgrind.
5637e3edceSBram Moolenaar# VALGRIND=1
5737e3edceSBram Moolenaar
58e4f25e4aSBram Moolenaarall: $(LIBRARY) $(BINFILES)
59e4f25e4aSBram Moolenaar
60e4f25e4aSBram Moolenaar$(LIBRARY): $(OBJECTS)
61a9659e0dSBram Moolenaar	$(LIBTOOL) --mode=link --tag=CC $(CC) -rpath $(LIBDIR) -version-info $(VERSION_CURRENT):$(VERSION_REVISION):$(VERSION_AGE) -o $@ $^ $(LDFLAGS)
62e4f25e4aSBram Moolenaar
63e4f25e4aSBram Moolenaarsrc/%.lo: src/%.c $(HFILES_INT)
64a9659e0dSBram Moolenaar	$(LIBTOOL) --mode=compile --tag=CC $(CC) $(CFLAGS) -o $@ -c $<
65e4f25e4aSBram Moolenaar
66e4f25e4aSBram Moolenaarsrc/encoding/%.inc: src/encoding/%.tbl
67a9659e0dSBram Moolenaar	perl -CSD tbl2inc_c.pl $< >$@
68e4f25e4aSBram Moolenaar
69e178ba36SBram Moolenaarsrc/fullwidth.inc:
70e178ba36SBram Moolenaar	@perl find-wide-chars.pl >$@
71e178ba36SBram Moolenaar
72e4f25e4aSBram Moolenaarsrc/encoding.lo: $(INCFILES)
73e4f25e4aSBram Moolenaar
74e4f25e4aSBram Moolenaarbin/%: bin/%.c $(LIBRARY)
75a9659e0dSBram Moolenaar	$(LIBTOOL) --mode=link --tag=CC $(CC) $(CFLAGS) -o $@ $< -lvterm $(LDFLAGS)
76e4f25e4aSBram Moolenaar
77e4f25e4aSBram Moolenaart/harness.lo: t/harness.c $(HFILES)
78a9659e0dSBram Moolenaar	$(LIBTOOL) --mode=compile --tag=CC $(CC) $(CFLAGS) -o $@ -c $<
79e4f25e4aSBram Moolenaar
80e4f25e4aSBram Moolenaart/harness: t/harness.lo $(LIBRARY)
81*476268c3SBram Moolenaar	$(LIBTOOL) --mode=link --tag=CC $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) -static
82e4f25e4aSBram Moolenaar
83e4f25e4aSBram Moolenaar.PHONY: test
84e4f25e4aSBram Moolenaartest: $(LIBRARY) t/harness
85e4f25e4aSBram Moolenaar	for T in `ls t/[0-9]*.test`; do echo "** $$T **"; perl t/run-test.pl $$T $(if $(VALGRIND),--valgrind) || exit 1; done
86e4f25e4aSBram Moolenaar
87e4f25e4aSBram Moolenaar.PHONY: clean
88e4f25e4aSBram Moolenaarclean:
89e4f25e4aSBram Moolenaar	$(LIBTOOL) --mode=clean rm -f $(OBJECTS) $(INCFILES)
90e4f25e4aSBram Moolenaar	$(LIBTOOL) --mode=clean rm -f t/harness.lo t/harness
91e4f25e4aSBram Moolenaar	$(LIBTOOL) --mode=clean rm -f $(LIBRARY) $(BINFILES)
92e4f25e4aSBram Moolenaar
93e4f25e4aSBram Moolenaar.PHONY: install
94e4f25e4aSBram Moolenaarinstall: install-inc install-lib install-bin
95e4f25e4aSBram Moolenaar
96e4f25e4aSBram Moolenaarinstall-inc:
97e4f25e4aSBram Moolenaar	install -d $(DESTDIR)$(INCDIR)
98e4f25e4aSBram Moolenaar	install -m644 $(HFILES) $(DESTDIR)$(INCDIR)
99e4f25e4aSBram Moolenaar	install -d $(DESTDIR)$(LIBDIR)/pkgconfig
100e4f25e4aSBram Moolenaar	sed -e "s,@PREFIX@,$(PREFIX)," -e "s,@LIBDIR@,$(LIBDIR)," -e "s,@VERSION@,$(VERSION)," <vterm.pc.in >$(DESTDIR)$(LIBDIR)/pkgconfig/vterm.pc
101e4f25e4aSBram Moolenaar
102e4f25e4aSBram Moolenaarinstall-lib: $(LIBRARY)
103e4f25e4aSBram Moolenaar	install -d $(DESTDIR)$(LIBDIR)
104e4f25e4aSBram Moolenaar	$(LIBTOOL) --mode=install install $(LIBRARY) $(DESTDIR)$(LIBDIR)/$(LIBRARY)
105e4f25e4aSBram Moolenaar	$(LIBTOOL) --mode=finish $(DESTDIR)$(LIBDIR)
106e4f25e4aSBram Moolenaar
107e4f25e4aSBram Moolenaarinstall-bin: $(BINFILES)
108e4f25e4aSBram Moolenaar	install -d $(DESTDIR)$(BINDIR)
109e4f25e4aSBram Moolenaar	$(LIBTOOL) --mode=install install $(BINFILES) $(DESTDIR)$(BINDIR)/
110e4f25e4aSBram Moolenaar
111e4f25e4aSBram Moolenaar# DIST CUT
112e4f25e4aSBram Moolenaar
113e4f25e4aSBram MoolenaarDISTDIR=libvterm-$(VERSION)
114e4f25e4aSBram Moolenaar
115e4f25e4aSBram Moolenaardistdir: $(INCFILES)
116e4f25e4aSBram Moolenaar	mkdir __distdir
1176fc3b59eSBram Moolenaar	cp LICENSE CONTRIBUTING __distdir
118e4f25e4aSBram Moolenaar	mkdir __distdir/src
119d4a5f40cSBram Moolenaar	cp src/*.c src/*.h src/*.inc __distdir/src
120e4f25e4aSBram Moolenaar	mkdir __distdir/src/encoding
121e4f25e4aSBram Moolenaar	cp src/encoding/*.inc __distdir/src/encoding
122e4f25e4aSBram Moolenaar	mkdir __distdir/include
123e4f25e4aSBram Moolenaar	cp include/*.h __distdir/include
124e4f25e4aSBram Moolenaar	mkdir __distdir/bin
125e4f25e4aSBram Moolenaar	cp bin/*.c __distdir/bin
126e4f25e4aSBram Moolenaar	mkdir __distdir/t
127e4f25e4aSBram Moolenaar	cp t/*.test t/harness.c t/run-test.pl __distdir/t
128e4f25e4aSBram Moolenaar	sed "s,@VERSION@,$(VERSION)," <vterm.pc.in >__distdir/vterm.pc.in
129e4f25e4aSBram Moolenaar	sed "/^# DIST CUT/Q" <Makefile >__distdir/Makefile
130e4f25e4aSBram Moolenaar	mv __distdir $(DISTDIR)
131e4f25e4aSBram Moolenaar
132e4f25e4aSBram MoolenaarTARBALL=$(DISTDIR).tar.gz
133e4f25e4aSBram Moolenaar
134e4f25e4aSBram Moolenaardist: distdir
135e4f25e4aSBram Moolenaar	tar -czf $(TARBALL) $(DISTDIR)
136e4f25e4aSBram Moolenaar	rm -rf $(DISTDIR)
137e4f25e4aSBram Moolenaar
138e4f25e4aSBram Moolenaardist+bzr:
139e4f25e4aSBram Moolenaar	$(MAKE) dist VERSION=$(VERSION)+bzr`bzr revno`
140e4f25e4aSBram Moolenaar
141e4f25e4aSBram Moolenaardistdir+bzr:
142e4f25e4aSBram Moolenaar	$(MAKE) distdir VERSION=$(VERSION)+bzr`bzr revno`
143