1# $Id: makefile.in,v 1.87 2013/09/02 19:51:58 tom Exp $
2# template makefile for DIALOG
3##############################################################################
4# Copyright (c) 1999-2012,2013 Thomas E. Dickey                              #
5#                                                                            #
6# Permission is hereby granted, free of charge, to any person obtaining a    #
7# copy of this software and associated documentation files (the "Software"), #
8# to deal in the Software without restriction, including without limitation  #
9# the rights to use, copy, modify, merge, publish, distribute, distribute    #
10# with modifications, sublicense, and/or sell copies of the Software, and to #
11# permit persons to whom the Software is furnished to do so, subject to the  #
12# following conditions:                                                      #
13#                                                                            #
14# The above copyright notice and this permission notice shall be included in #
15# all copies or substantial portions of the Software.                        #
16#                                                                            #
17# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
18# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
19# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
20# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
21# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
22# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
23# DEALINGS IN THE SOFTWARE.                                                  #
24#                                                                            #
25# Except as contained in this notice, the name(s) of the above copyright     #
26# holders shall not be used in advertising or otherwise to promote the sale, #
27# use or other dealings in this Software without prior written               #
28# authorization.                                                             #
29##############################################################################
30#
31SHELL		= /bin/sh
32
33srcdir		= @srcdir@
34VPATH		= @srcdir@
35
36prefix		= @prefix@
37exec_prefix	= @exec_prefix@
38datarootdir	= @datarootdir@
39
40top_builddir	= .
41
42x		= @EXEEXT@
43o		= .@OBJEXT@
44
45DESTDIR		=
46
47THIS		= dialog
48
49CFG_ROOTNAME	= @CFG_ROOTNAME@
50HDR_ROOTNAME	= @HDR_ROOTNAME@
51LIB_ROOTNAME	= @LIB_ROOTNAME@
52LIB_SUFFIX	= @LIB_SUFFIX@
53
54VERSION_MAJOR	= @VERSION_MAJOR@
55VERSION_MINOR	= @VERSION_MINOR@
56VERSION		= $(VERSION_MAJOR).$(VERSION_MINOR)
57REL_VERSION	= @REL_VERSION@
58ABI_VERSION	= @ABI_VERSION@
59LIB_ROOTNAME	= @LIB_ROOTNAME@
60@SET_SHLIB_VARS@
61
62bindir		= @bindir@
63includedir	= @includedir@
64libdir		= @libdir@
65mandir		= @mandir@
66
67BINDIR		= $(DESTDIR)$(bindir)
68INCLUDEDIR	= $(DESTDIR)$(includedir)
69LIBDIR		= $(DESTDIR)$(libdir)
70MANDIR		= $(DESTDIR)$(mandir)
71
72MAN1DIR		= $(MANDIR)/man1
73MAN3DIR		= $(MANDIR)/man3
74
75# see po/makefile
76localedir       = $(prefix)/@DATADIRNAME@/locale
77
78CFLAGS		= @CFLAGS@
79CPPFLAGS	= -I. -I$(srcdir) @CPPFLAGS@ @DEFS@ -DLOCALEDIR=\"$(localedir)\"
80EXTRA_CFLAGS	= @EXTRA_CFLAGS@
81CC		= @CC@
82CPP		= @CPP@
83AR		= @AR@
84LDFLAGS		= @EXTRA_LDFLAGS@ @LDFLAGS@
85LIBS		= @LIBS@ @INTLLIBS@
86RANLIB		= @LIB_PREP@
87
88RM		= rm -f
89LN_S		= @LN_S@
90LINT		= @LINT@
91LINT_OPTS	= @LINT_OPTS@
92
93CTAGS		= @CTAGS@
94ETAGS		= @ETAGS@
95
96LIBTOOL		= @LIBTOOL@ @ECHO_LT@
97LIBTOOL_OPTS	= @LIBTOOL_OPTS@
98LIBTOOL_CLEAN	= @LIB_CLEAN@
99LIBTOOL_COMPILE	= @LIB_COMPILE@
100LIBTOOL_CREATE	= @LIB_CREATE@
101LIBTOOL_LINK	= @LIB_LINK@
102LIBTOOL_INSTALL	= @LIB_INSTALL@
103LIBTOOL_UNINSTALL = @LIB_UNINSTALL@
104LIBTOOL_VERSION = @LIBTOOL_VERSION@
105
106INSTALL		= @INSTALL@
107INSTALL_PROGRAM	= $(LIBTOOL_INSTALL) @INSTALL_PROGRAM@
108INSTALL_SCRIPT	= @INSTALL_SCRIPT@
109INSTALL_DATA	= @INSTALL_DATA@
110
111LINK		= $(LIBTOOL_LINK)
112
113# The library is always named for the package, but the program can be further
114# renamed at install time, starting with the package name.
115PACKAGE		= @PACKAGE@
116ACTUAL_PROG	= `echo $(PACKAGE) |sed @program_transform_name@`
117LIB_CONFIG	= $(CFG_ROOTNAME)-config
118
119# The library name $(LIB) is set at configure/make time, since it is used as a
120# makefile target.  Ditto for $(PROG).
121LIB		= @LIB_TARGET@
122PROG		= @PACKAGE@$x
123#
124# Standard .c to .o compile line.
125#
126.SUFFIXES: .c .i $o .html .1 .3 .man .ps .pdf .txt
127.c.i :
128	@RULE_CC@
129	@ECHO_CC@$(CPP) $(CPPFLAGS) -c $< >$@
130.c$o :
131	@RULE_CC@
132	@ECHO_CC@$(LIBTOOL_COMPILE) $(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) -c $<
133
134.1.html :
135	GROFF_NO_SGR=stupid $(SHELL) -c "tbl $< | groff -P -o0 -I$*_ -Thtml -man" >$@
136
137.1.ps :
138	$(SHELL) -c "tbl $< | groff -man" >$@
139
140.1.txt :
141	GROFF_NO_SGR=stupid $(SHELL) -c "tbl $< | nroff -Tascii -man | col -bx" >$@
142
143.ps.pdf :
144	ps2pdf $*.ps
145
146EXTRAOBJS = @EXTRAOBJS@
147OBJECTS = $(EXTRAOBJS) \
148	argv$o \
149	arrows$o \
150	buttons$o \
151	checklist$o \
152	columns$o \
153	dlg_keys$o \
154	editbox$o \
155	help$o \
156	inputbox$o \
157	inputstr$o \
158	menubox$o \
159	mouse$o \
160	mousewget$o \
161	msgbox$o \
162	textbox$o \
163	ui_getc$o \
164	util$o \
165	version$o \
166	yesno$o
167
168LIB_OBJECT = @LIB_OBJECT@
169
170SRCS = $(OBJECTS:$o=.c)
171HDRS = \
172	dialog.h \
173	dlg_colors.h \
174	dlg_config.h \
175	dlg_keys.h
176
177ALL		= $(LIB) $(PROG)
178
179BIN_DIRS	= $(BINDIR) $(MAN1DIR)
180LIB_DIRS	= $(LIBDIR) $(INCLUDEDIR)
181
182PO_DIR		= $(srcdir)/po
183
184all	:: $(ALL)
185
186@LIBTOOL_MAKE@install	:: install-lib
187@LIBTOOL_MAKE@uninstall	:: uninstall-lib
188
189@INTLDIR_MAKE@@INTLLIBS@ :
190@INTLDIR_MAKE@	@echo "Building GNU gettext library..."
191@INTLDIR_MAKE@	@cd intl && $(MAKE) @cf_cv_makeflags@
192
193dialog$o \
194$(OBJECTS) : $(srcdir)/dialog.h $(srcdir)/dlg_keys.h dlg_config.h VERSION
195
196$(PROG)$x : $(LIB) dialog$o @INTLDIR_MAKE@ @INTLLIBS@
197	$(LINK) -o $@ dialog$o -L. -l@PACKAGE@ $(LDFLAGS) $(LIBS)
198
199clean	\
200distclean \
201install \
202install-full \
203install-strip \
204uninstall ::
205	@echo making $@
206@INTLDIR_MAKE@	@-test -f intl/makefile && cd intl && $(MAKE) @cf_cv_makeflags@ $@
207@MSG_DIR_MAKE@	@-test -f po/makefile && cd po && $(MAKE) @cf_cv_makeflags@ $@
208
209clean	::
210	@- $(RM) -r autom4te.cache
211	- $(RM) *.*cov *.da *.bb *.bbg
212	- $(LIBTOOL_CLEAN) $(RM) *.i *$o $(ALL)
213	- $(RM) headers.sed
214	- $(RM) *.html *.pdf *.png *.ps *.txt dialog_lib.1
215	- $(RM) core *~ tags TAGS
216
217distclean :: clean
218	$(RM) intl/libintl.h intl/po2tbl.sed
219	$(RM) makefile dlg_config.h config.cache config.log config.status
220	$(RM) samples/install/makefile
221	$(RM) headers-sh
222	$(RM) dialog-config
223
224install :: install-bin install-man
225	@echo "made $@"
226
227install-full :: install-lib install-bin install-man
228	@echo "made $@"
229
230install-strip :: $(PROG) $(BINDIR)
231	$(INSTALL_PROGRAM) -s $(PROG) $(BINDIR)
232
233uninstall :: uninstall-bin uninstall-man
234	@echo "made $@"
235
236uninstall-full :: uninstall-bin uninstall-man uninstall-lib
237	@echo "made $@"
238
239install-bin : $(PROG) $(BINDIR)
240	$(INSTALL_PROGRAM) $(PROG) $(BINDIR)/$(ACTUAL_PROG)$x
241
242uninstall-bin :
243	$(RM) $(BINDIR)/$(ACTUAL_PROG)$x
244
245install-man :: $(MAN1DIR)
246	@ echo "** installing $(ACTUAL_PROG).1"
247	@ $(SHELL) $(srcdir)/rename.sh \
248		$(srcdir)/dialog.1 \
249		$(MAN1DIR)/$(ACTUAL_PROG).1 \
250		$(ACTUAL_PROG) \
251		@PACKAGE@ \
252		$(INSTALL_DATA)
253
254uninstall-man ::
255	$(RM) $(MAN1DIR)/$(ACTUAL_PROG).1
256
257# most users do not want/need the library, so the install rules are distinct.
258install-lib :: $(BINDIR) dialog-config
259	@ echo "** installing config script in $(BINDIR)"
260	@ $(INSTALL_SCRIPT) dialog-config $(BINDIR)/$(LIB_CONFIG)
261
262install-lib :: $(LIB_DIRS) $(LIB) headers.sed
263	@ echo "** installing library in $(LIBDIR)"
264	@ $(LIBTOOL_INSTALL) $(INSTALL_DATA) $(LIB) $(LIBDIR)
265	@ echo "** installing headers in $(INCLUDEDIR)"
266	@ $(SHELL) headers-sh $(INSTALL_DATA) $(INCLUDEDIR) $(srcdir) dialog.h
267	@ $(SHELL) headers-sh $(INSTALL_DATA) $(INCLUDEDIR) $(srcdir) dlg_colors.h
268	@ $(SHELL) headers-sh $(INSTALL_DATA) $(INCLUDEDIR) $(srcdir) dlg_keys.h
269	@ $(SHELL) headers-sh $(INSTALL_DATA) $(INCLUDEDIR) .         dlg_config.h
270
271uninstall-lib :: $(BINDIR)
272	$(RM) $(BINDIR)/$(LIB_CONFIG)
273
274uninstall-lib :: $(LIB_DIRS)
275	- $(LIBTOOL_UNINSTALL) $(RM) $(LIBDIR)/$(LIB)
276	@ $(SHELL) headers-sh $(RM) $(INCLUDEDIR) $(srcdir) dialog.h
277	@ $(SHELL) headers-sh $(RM) $(INCLUDEDIR) $(srcdir) dlg_colors.h
278	@ $(SHELL) headers-sh $(RM) $(INCLUDEDIR) $(srcdir) dlg_keys.h
279	@ $(SHELL) headers-sh $(RM) $(INCLUDEDIR) .         dlg_config.h
280
281install-lib :: $(MAN3DIR)
282	@ echo "** installing @PACKAGE@.3"
283	@ $(SHELL) $(srcdir)/rename.sh \
284		$(srcdir)/dialog.3 \
285		$(MAN3DIR)/@PACKAGE@.3 \
286		$(ACTUAL_PROG) \
287		@PACKAGE@ \
288		$(INSTALL_DATA)
289
290uninstall-lib ::
291	$(RM) $(MAN3DIR)/@PACKAGE@.3
292
293headers.sed : headers-sh
294	$(SHELL) headers-sh $(INCLUDEDIR) $(srcdir)
295
296################################################################################
297TOP_DOCS = \
298	dialog.html \
299	dialog.pdf \
300	dialog.ps \
301	dialog.txt
302dialog.html : dialog.1
303dialog.pdf : dialog.ps
304dialog.ps : dialog.1
305dialog.txt : dialog.1
306################################################################################
307# rename, to use suffix-rules
308dialog_lib.1 : dialog.3
309	-$(RM) $@
310	cp dialog.3 $@
311
312LIB_DOCS = \
313	dialog_lib.1 \
314	dialog_lib.html \
315	dialog_lib.pdf \
316	dialog_lib.ps \
317	dialog_lib.txt
318dialog_lib.html : dialog_lib.1
319dialog_lib.pdf : dialog_lib.ps
320dialog_lib.ps : dialog_lib.1
321dialog_lib.txt : dialog_lib.1
322################################################################################
323docs: $(TOP_DOCS) $(LIB_DOCS)
324clean-docs:
325	-$(RM) $(TOP_DOCS) $(LIB_DOCS)
326################################################################################
327
328$(MAN1DIR) \
329$(MAN3DIR) \
330$(BINDIR) \
331$(INCLUDEDIR) \
332$(LIBDIR) : ; mkdir -p $@
333
334@MAKE_LOWER_TAGS@tags :
335@MAKE_LOWER_TAGS@	$(CTAGS) $(SRCS) $(HDRS)
336
337@MAKE_LOWER_TAGS@TAGS :
338@MAKE_LOWER_TAGS@	$(ETAGS) $(SRCS) $(HDRS)
339
340update-po:
341	rsync -Lrtvz  translationproject.org::tp/latest/dialog/  $(PO_DIR)
342	test -f $(PO_DIR)/makefile && cd $(PO_DIR) && $(MAKE) $@
343
344lint:
345	$(LINT) $(LINT_OPTS) $(CPPFLAGS) *.c
346