xref: /vim-8.2.3635/src/libvterm/Makefile (revision 37e3edce)
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
40e4f25e4aSBram MoolenaarVERSION_MINOR=0
41e4f25e4aSBram Moolenaar
42e4f25e4aSBram MoolenaarVERSION_CURRENT=0
43e4f25e4aSBram MoolenaarVERSION_REVISION=0
44e4f25e4aSBram MoolenaarVERSION_AGE=0
45e4f25e4aSBram Moolenaar
46e4f25e4aSBram MoolenaarVERSION=0
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
55*37e3edceSBram Moolenaar# Uncomment to check for memory access errors with valgrind.
56*37e3edceSBram Moolenaar# VALGRIND=1
57*37e3edceSBram Moolenaar
58e4f25e4aSBram Moolenaarall: $(LIBRARY) $(BINFILES)
59e4f25e4aSBram Moolenaar
60e4f25e4aSBram Moolenaar$(LIBRARY): $(OBJECTS)
61e4f25e4aSBram Moolenaar	@echo LINK $@
62e4f25e4aSBram Moolenaar	@$(LIBTOOL) --mode=link --tag=CC $(CC) -rpath $(LIBDIR) -version-info $(VERSION_CURRENT):$(VERSION_REVISION):$(VERSION_AGE) -o $@ $^ $(LDFLAGS)
63e4f25e4aSBram Moolenaar
64e4f25e4aSBram Moolenaarsrc/%.lo: src/%.c $(HFILES_INT)
65e4f25e4aSBram Moolenaar	@echo CC $<
66e4f25e4aSBram Moolenaar	@$(LIBTOOL) --mode=compile --tag=CC $(CC) $(CFLAGS) -o $@ -c $<
67e4f25e4aSBram Moolenaar
68e4f25e4aSBram Moolenaarsrc/encoding/%.inc: src/encoding/%.tbl
69e4f25e4aSBram Moolenaar	@echo TBL $<
70e4f25e4aSBram Moolenaar	@perl -CSD tbl2inc_c.pl $< >$@
71e4f25e4aSBram Moolenaar
72e4f25e4aSBram Moolenaarsrc/encoding.lo: $(INCFILES)
73e4f25e4aSBram Moolenaar
74e4f25e4aSBram Moolenaarbin/%: bin/%.c $(LIBRARY)
75e4f25e4aSBram Moolenaar	@echo CC $<
76e4f25e4aSBram Moolenaar	@$(LIBTOOL) --mode=link --tag=CC $(CC) $(CFLAGS) -o $@ $< -lvterm $(LDFLAGS)
77e4f25e4aSBram Moolenaar
78e4f25e4aSBram Moolenaart/harness.lo: t/harness.c $(HFILES)
79e4f25e4aSBram Moolenaar	@echo CC $<
80e4f25e4aSBram Moolenaar	@$(LIBTOOL) --mode=compile --tag=CC $(CC) $(CFLAGS) -o $@ -c $<
81e4f25e4aSBram Moolenaar
82e4f25e4aSBram Moolenaart/harness: t/harness.lo $(LIBRARY)
83e4f25e4aSBram Moolenaar	@echo LINK $@
84e4f25e4aSBram Moolenaar	@$(LIBTOOL) --mode=link --tag=CC $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
85e4f25e4aSBram Moolenaar
86e4f25e4aSBram Moolenaar.PHONY: test
87e4f25e4aSBram Moolenaartest: $(LIBRARY) t/harness
88e4f25e4aSBram Moolenaar	for T in `ls t/[0-9]*.test`; do echo "** $$T **"; perl t/run-test.pl $$T $(if $(VALGRIND),--valgrind) || exit 1; done
89e4f25e4aSBram Moolenaar
90e4f25e4aSBram Moolenaar.PHONY: clean
91e4f25e4aSBram Moolenaarclean:
92e4f25e4aSBram Moolenaar	$(LIBTOOL) --mode=clean rm -f $(OBJECTS) $(INCFILES)
93e4f25e4aSBram Moolenaar	$(LIBTOOL) --mode=clean rm -f t/harness.lo t/harness
94e4f25e4aSBram Moolenaar	$(LIBTOOL) --mode=clean rm -f $(LIBRARY) $(BINFILES)
95e4f25e4aSBram Moolenaar
96e4f25e4aSBram Moolenaar.PHONY: install
97e4f25e4aSBram Moolenaarinstall: install-inc install-lib install-bin
98e4f25e4aSBram Moolenaar
99e4f25e4aSBram Moolenaarinstall-inc:
100e4f25e4aSBram Moolenaar	install -d $(DESTDIR)$(INCDIR)
101e4f25e4aSBram Moolenaar	install -m644 $(HFILES) $(DESTDIR)$(INCDIR)
102e4f25e4aSBram Moolenaar	install -d $(DESTDIR)$(LIBDIR)/pkgconfig
103e4f25e4aSBram Moolenaar	sed -e "s,@PREFIX@,$(PREFIX)," -e "s,@LIBDIR@,$(LIBDIR)," -e "s,@VERSION@,$(VERSION)," <vterm.pc.in >$(DESTDIR)$(LIBDIR)/pkgconfig/vterm.pc
104e4f25e4aSBram Moolenaar
105e4f25e4aSBram Moolenaarinstall-lib: $(LIBRARY)
106e4f25e4aSBram Moolenaar	install -d $(DESTDIR)$(LIBDIR)
107e4f25e4aSBram Moolenaar	$(LIBTOOL) --mode=install install $(LIBRARY) $(DESTDIR)$(LIBDIR)/$(LIBRARY)
108e4f25e4aSBram Moolenaar	$(LIBTOOL) --mode=finish $(DESTDIR)$(LIBDIR)
109e4f25e4aSBram Moolenaar
110e4f25e4aSBram Moolenaarinstall-bin: $(BINFILES)
111e4f25e4aSBram Moolenaar	install -d $(DESTDIR)$(BINDIR)
112e4f25e4aSBram Moolenaar	$(LIBTOOL) --mode=install install $(BINFILES) $(DESTDIR)$(BINDIR)/
113e4f25e4aSBram Moolenaar
114e4f25e4aSBram Moolenaar# DIST CUT
115e4f25e4aSBram Moolenaar
116e4f25e4aSBram MoolenaarVERSION=$(VERSION_MAJOR).$(VERSION_MINOR)
117e4f25e4aSBram Moolenaar
118e4f25e4aSBram MoolenaarDISTDIR=libvterm-$(VERSION)
119e4f25e4aSBram Moolenaar
120e4f25e4aSBram Moolenaardistdir: $(INCFILES)
121e4f25e4aSBram Moolenaar	mkdir __distdir
122e4f25e4aSBram Moolenaar	cp LICENSE __distdir
123e4f25e4aSBram Moolenaar	mkdir __distdir/src
124e4f25e4aSBram Moolenaar	cp src/*.c src/*.h __distdir/src
125e4f25e4aSBram Moolenaar	mkdir __distdir/src/encoding
126e4f25e4aSBram Moolenaar	cp src/encoding/*.inc __distdir/src/encoding
127e4f25e4aSBram Moolenaar	mkdir __distdir/include
128e4f25e4aSBram Moolenaar	cp include/*.h __distdir/include
129e4f25e4aSBram Moolenaar	mkdir __distdir/bin
130e4f25e4aSBram Moolenaar	cp bin/*.c __distdir/bin
131e4f25e4aSBram Moolenaar	mkdir __distdir/t
132e4f25e4aSBram Moolenaar	cp t/*.test t/harness.c t/run-test.pl __distdir/t
133e4f25e4aSBram Moolenaar	sed "s,@VERSION@,$(VERSION)," <vterm.pc.in >__distdir/vterm.pc.in
134e4f25e4aSBram Moolenaar	sed "/^# DIST CUT/Q" <Makefile >__distdir/Makefile
135e4f25e4aSBram Moolenaar	mv __distdir $(DISTDIR)
136e4f25e4aSBram Moolenaar
137e4f25e4aSBram MoolenaarTARBALL=$(DISTDIR).tar.gz
138e4f25e4aSBram Moolenaar
139e4f25e4aSBram Moolenaardist: distdir
140e4f25e4aSBram Moolenaar	tar -czf $(TARBALL) $(DISTDIR)
141e4f25e4aSBram Moolenaar	rm -rf $(DISTDIR)
142e4f25e4aSBram Moolenaar
143e4f25e4aSBram Moolenaardist+bzr:
144e4f25e4aSBram Moolenaar	$(MAKE) dist VERSION=$(VERSION)+bzr`bzr revno`
145e4f25e4aSBram Moolenaar
146e4f25e4aSBram Moolenaardistdir+bzr:
147e4f25e4aSBram Moolenaar	$(MAKE) distdir VERSION=$(VERSION)+bzr`bzr revno`
148