1XCOMM Imakefile: How to build x11-ssh-askpass, using xmkmf and then make
2XCOMM
3XCOMM by Jim Knoble <jmknoble@pobox.com>
4XCOMM Copyright (C) 1999,2000,2001 Jim Knoble
5XCOMM
6XCOMM Disclaimer:
7XCOMM
8XCOMM This software is provided "as is", without warranty of any kind,
9XCOMM express or implied, including but not limited to the warranties of
10XCOMM merchantability, fitness for a particular purpose and
11XCOMM noninfringement. In no event shall the author(s) be liable for any
12XCOMM claim, damages or other liability, whether in an action of
13XCOMM contract, tort or otherwise, arising from, out of or in connection
14XCOMM with the software or the use or other dealings in the software.
15XCOMM
16XCOMM Permission to use, copy, modify, distribute, and sell this software
17XCOMM and its documentation for any purpose is hereby granted without
18XCOMM fee, provided that the above copyright notice appear in all copies
19XCOMM and that both that copyright notice and this permission notice
20XCOMM appear in supporting documentation.
21
22NAME		= x11-ssh-askpass
23CLASS		= SshAskpass
24
25XCOMM -------- configurable settings --------
26BINDIR		= /usr/local/libexec
27MANPATH		= /usr/local/man
28MANDIR		= $(MANPATH)/man1
29APPDEFDIR	= $(XAPPLOADDIR)
30APP_DEFAULTS	= SshAskpass-default.ad
31
32XCOMM CC		=
33XCOMM CDEBUGFLAGS	=
34XCOMM LOCAL_LDFLAGS	=
35XCOMM -------- end configurable settings --------
36
37#ifndef CpCmd
38# define CpCmd cp
39#endif
40
41#ifndef GzipCmd
42# define GzipCmd gzip
43#endif
44
45#ifndef LnCmd
46# if HasSymLinks
47#  define LnCmd ln -s
48# else
49#  define LnCmd ln
50# endif
51#endif
52
53#ifndef MvCmd
54# define MvCmd mv -f
55#endif
56
57#ifndef RmCmd
58# define RmCmd rm -f
59#endif
60
61CAT		= cat
62CHMOD		= chmod
63CP		= CpCmd
64GREP		= grep
65GZIP		= GzipCmd
66LN		= LnCmd
67MKDIR		= MkdirHierCmd
68MV		= MvCmd
69RM		= RmCmd
70SED		= sed
71TAR		= tar
72
73MAKE_CHANGELOG	= cvs2cl
74
75VERSION		= 1.2.4.1
76DATE		= September 17, 2001
77PROJECT		= $(NAME)-$(VERSION)
78DIST_DIR	= $(PROJECT)
79DIST		= $(PROJECT).tar.gz
80
81HDRS = \@@\
82 drawing.h \@@\
83 dynlist.h \@@\
84 resources.h \@@\
85 x11-ssh-askpass.h
86
87SRCS = \@@\
88 drawing.c \@@\
89 dynlist.c \@@\
90 resources.c \@@\
91 x11-ssh-askpass.c
92
93OBJS = \@@\
94 drawing.o \@@\
95 dynlist.o \@@\
96 resources.o \@@\
97 x11-ssh-askpass.o
98
99MAN_OBJ		= $(NAME).man
100MAN_SRC		= $(MAN_OBJ).in
101MANS		= $(MAN_SRC)
102
103CHANGELOG	= ChangeLog
104
105CONFIGURE	= configure
106
107IMAKEFILE_OBJ	= Imakefile
108IMAKEFILE_SRC	= $(IMAKEFILE_OBJ).in
109IMAKEFILES	= $(IMAKEFILE_SRC)
110
111DOCS = \@@\
112 README \@@\
113 TODO
114
115APP_DEFAULTS_FILES = \@@\
116 $(CLASS)-1337.ad \@@\
117 $(CLASS)-NeXTish.ad \@@\
118 $(CLASS)-green.ad \@@\
119 $(CLASS)-motif.ad \@@\
120 $(CLASS)-default.ad \@@\
121
122DIST_FILES = \@@\
123 $(IMAKEFILES) \@@\
124 $(CONFIGURE) \@@\
125 $(DOCS) \@@\
126 $(APP_DEFAULTS_FILES) \@@\
127 $(MANS) \@@\
128 $(SRCS) \@@\
129 $(HDRS)
130
131DIST_EXTRAS = \@@\
132 $(CHANGELOG) \@@\
133 $(IMAKEFILE_OBJ)
134
135LOCAL_LIBRARIES	= -lXt -lX11 -lSM -lICE
136
137ComplexProgramTarget($(NAME))
138
139install:: install-app-defaults
140
141install-app-defaults: $(CLASS).ad
142	@if [ -d $(DESTDIR)$(APPDEFDIR) ]; then set +x; \@@\
143	else (set -x; $(MKDIRHIER) $(DESTDIR)$(APPDEFDIR)); fi
144	$(INSTALL) $(INSTALLFLAGS) $(INSTAPPFLAGS) $(CLASS).ad \@@\
145	  $(DESTDIR)$(APPDEFDIR)/$(CLASS)
146
147install::
148	@set -x; \@@\
149	if [ -f $(DESTDIR)$(BINDIR)/ssh-askpass ]; then \@@\
150	  $(MV) $(DESTDIR)$(BINDIR)/ssh-askpass \@@\
151	    $(DESTDIR)$(BINDIR)/ssh-askpass.old; \@@\
152	fi
153	$(LN) $(NAME) $(DESTDIR)$(BINDIR)/ssh-askpass
154
155install.man::
156	@set -x; \@@\
157	if [ -f $(DESTDIR)$(MANDIR)/ssh-askpass.$(MANSUFFIX) ]; then \@@\
158	  $(MV) $(DESTDIR)$(MANDIR)/ssh-askpass.$(MANSUFFIX) \@@\
159	    $(DESTDIR)$(MANDIR)/ssh-askpass.$(MANSUFFIX).old; \@@\
160	fi
161	$(LN) $(NAME).$(MANSUFFIX) $(DESTDIR)$(MANDIR)/ssh-askpass.$(MANSUFFIX)
162
163.PHONY: depends changelog realclean squeakyclean spotless tar dist
164
165all:: $(MAN_OBJ)
166
167$(MAN_OBJ): $(MAN_SRC) $(IMAKEFILE_SRC)
168	$(SED) \@@\
169	  -e 's#@NAME@#$(NAME)#g' \@@\
170	  -e 's#@VERSION@#$(VERSION)#g' \@@\
171	  -e 's#@DATE@#$(DATE)#g' \@@\
172	  <$(MAN_SRC) >$@.tmp
173	$(MV) $@.tmp $@
174
175depends: depend
176
177includes:: $(CLASS)_ad.h
178
179$(CLASS).ad:
180	$(LN) $(APP_DEFAULTS) $(CLASS).ad
181
182$(CLASS)_ad.h: $(CLASS).ad
183	$(SED) -n '/^[^!]/s/.*/"&",/p' <$(CLASS).ad >$@.tmp
184	$(MV) $@.tmp $@
185
186changelog: $(CHANGELOG)
187$(CHANGELOG): $(DIST_FILES)
188	$(MAKE_CHANGELOG)
189
190$(IMAKEFILE_OBJ): $(IMAKEFILE_SRC)
191	./$(CONFIGURE) --defaults
192
193clean::
194	-$(RM) $(CLASS)_ad.h $(MAN_OBJ)
195
196realclean: clean
197	-$(RM) $(CLASS).ad
198	-$(RM) *.LOG *.log
199
200squeakyclean: realclean
201	-$(RM) Makefile Makefile.bak $(IMAKEFILE_OBJ) $(CHANGELOG)
202
203spotless: squeakyclean
204	-$(RM) $(DIST)
205
206tar: dist
207dist: $(DIST)
208$(DIST): $(DIST_EXTRAS) $(DIST_FILES)
209	-$(RM) -r $(DIST_DIR)
210	-$(RM) $@.tmp
211	$(MKDIR) $(DIST_DIR)
212	$(CP) $(DIST_EXTRAS) $(DIST_FILES) $(DIST_DIR)/
213	$(CHMOD) -R u+rwX,go+rX,go-w $(DIST_DIR)
214	$(TAR) -cvf - $(DIST_DIR) |$(GZIP) -9 -c >$@.tmp
215	$(MV) $@.tmp $@
216	-$(RM) -r $(DIST_DIR)
217
218