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