nail.1: use .Ev not .Va for environment values; regexs are icase
[s-mailx.git] / mk-mk.in
blob4d0c87cc9db55cc2a3b5db1df8d47c82f8cbd0c3
1 #@ `mk-mk.in' -- mk.mk template, completed by mk-conf.sh
2 #@ Please see `INSTALL' and `conf.rc' instead.
4 OBJ = $(OBJ_SRC:.c=.o)
5 .SUFFIXES: .o .c .y
6 .c.o:
7         @if [ -z "$(VERBOSE)" ]; then echo '  CC $(<)';\
8         else echo '  $$ $(CC) $(CFLAGS) $(INCLUDES) -c $(<)';\
9         fi;\
10         $(CC) $(CFLAGS) $(INCLUDES) -c $(<)
11 .c .y: ;
13 all: _all_echoes $(UAGENT)
14 _all_echoes:
15         @echo 'Building..';\
16         if [ -z "$(VERBOSE)" ]; then \
17                 echo '. CC      : $(CC)';\
18                 echo '. CFLAGS  : $(CFLAGS)';\
19                 echo '. INCLUDES: $(INCLUDES)';\
20                 [ -n "$(LDFLAGS)" ] && echo '. LDFLAGS : $(LDFLAGS)';\
21                 echo '. LIBS    : $(LIBS)';\
22         fi
23 $(UAGENT): $(OBJ)
24         @if [ -z "$(VERBOSE)" ]; then echo '  LINK $(@)';\
25         else echo '  $$ $(CC) $(LDFLAGS) -o $(@) $(OBJ) $(LIBS)';\
26         fi;\
27         $(CC) $(LDFLAGS) -o $(@) $(OBJ) $(LIBS)
29 $(OBJ): config.h nail.h nailfuns.h $(OBJ_DEP)
30 config.o accmacvar.o: okeys.h
31 config.o imap.o pop3.o smtp.o urlcrecry.o: rfc1321.h
32 config.o imap.o: imap_gssapi.h
33 config.o lex.o: cmd_tab.h
34 config.o main.o: version.h
35 config.o mime.o: mime_types.h
36 config.o smtp.o: smtp_gssapi.h
38 mime_types.h: mime.types
39         @echo '  GEN $(@)';\
40         < ./mime.types > $(@) $(SED) -e '/^#/d; /^$$/d; s/^/    "/; s/$$/",/'
42 test: all
43         @echo 'Running test, please wait';\
44         $(SHELL) ./cc-test.sh --check-only ./$(UAGENT)
46 mkman.1: nail.1 mk.mk
47         @[ -n "$(VERBOSE)" ] && echo '  GEN $(UAGENT) manual ($(@))';\
48         _VERSION=`< version.h \
49                 $(SED) -e 's/^\#define VERSION "\\(.\\{1,\\}\\)"$$/\\1/'` \
50         _SYSCONFRC="$(SYSCONFRC)" _UAGENT="$(UAGENT)" \
51         < ./nail.1 > $(@) $(AWK) '\
52         BEGIN {\
53                 written = 0;\
54                 i = ENVIRON["_VERSION"];\
55                 j = index(i, "-");\
56                 if (j != 0)\
57                         XX = ".ds XX \\\\%[\\\\*(VV-" substr(i, j + 1) "]";\
58                 else\
59                         XX = ".ds XX \\\\%[\\\\*(VV]";\
60         }\
61         /\.\\"--MKMAN-START--/, /\.\\"--MKMAN-END--/ {\
62                 if (written == 1)\
63                         next;\
64                 written = 1;\
65                 OFS = "";\
66                 un = toupper(ENVIRON["_UAGENT"]);\
67                 ln = tolower(un);\
68                 cn = toupper(substr(ln, 1, 1)) substr(ln, 2);\
69                 print XX;\
70                 print ".ds UU \\\\%", un;\
71                 print ".ds UA \\\\%", cn;\
72                 print ".ds ua \\\\%", ln;\
73                 print ".ds UR \\\\%", ENVIRON["_SYSCONFRC"];\
74                 OFS = " ";\
75                 next\
76         }\
77         /^\.\\" vim:/ {next}\
78         {print}\
79         '
81 mkrc.rc: nail.rc mk.mk
82         @[ -n "$(VERBOSE)" ] &&\
83                 echo '  GEN $(UAGENT) default resource file ($(@))';\
84         _SYSCONFRC="$(SYSCONFRC)" _UAGENT="$(UAGENT)" \
85         < ./nail.rc > $(@) $(AWK) 'BEGIN {written = 0}\
86         /^#--MKRC-START--/, /^#--MKRC-END--/ {\
87                 if (written == 1)\
88                         next;\
89                 written = 1;\
90                 OFS = "";\
91                 ln = tolower(ENVIRON["_UAGENT"]);\
92                 cn = toupper(substr(ln, 1, 1)) substr(ln, 2);\
93                 print "# ", ENVIRON["_SYSCONFRC"], \
94                         " - configuration file for ", cn, "(1)";\
95                 OFS = " ";\
96                 next\
97         }\
98         /^# vim:/ {next}\
99         {print}\
100         '
102 _install_echoes:
103         @echo 'Installing..'
104 install: _install_echoes mk.mk mkman.1 mkrc.rc
105         @__mkdir() {\
106                 _dir=$${1};\
107                 if [ ! -d "$${_dir}" ]; then \
108                         if [ -n "$(VERBOSE)" ]; then \
109                                 echo "  \$$ $(MKDIR) -m 0755 -p '$${_dir}'";\
110                         fi;\
111                         $(MKDIR) -m 0755 -p "$${_dir}";\
112                 fi;\
113         };\
114         __copyfile() {\
115                 _mode=$${1} _src=$${2} _dst=$${3};\
116                 if [ -n "$(VERBOSE)" ]; then \
117                         echo "  \$$ $(CP) -f '$${_src}' '$${_dst}'";\
118                         echo "  \$$ $(CHMOD) $${_mode} '$${_dst}'";\
119                 fi;\
120                 $(CP) -f "$${_src}" "$${_dst}";\
121                 $(CHMOD) $${_mode} "$${_dst}";\
122         };\
123         __stripfile() {\
124                 _file=$${1};\
125                 if [ "$(WANT_DEBUG)" != 0 ]; then \
126                         if [ -n "$(VERBOSE)" ]; then \
127                                 echo "  \$$ :WANT_DEBUG=1, not strip(1)ing";\
128                         fi;\
129                 elif [ -n "$(HAVE_STRIP)" ]; then \
130                         if [ -n "$(VERBOSE)" ]; then \
131                                 echo "  \$$ $(STRIP) '$${_file}'";\
132                         fi;\
133                         $(STRIP) "$${_file}";\
134                 fi;\
135         };\
136         if [ -n "$(DESTDIR)" ]; then __mkdir "$(DESTDIR)"; fi;\
137         __mkdir "$(DESTDIR)$(BINDIR)";\
138         __copyfile 0755 "$(UAGENT)" "$(DESTDIR)$(BINDIR)/$(UAGENT)";\
139         __stripfile "$(DESTDIR)$(BINDIR)/$(UAGENT)";\
140         __mkdir "$(DESTDIR)$(MANDIR)/man1";\
141         __copyfile 0644 ./mkman.1 "$(DESTDIR)$(MANDIR)/man1/$(UAGENT).1";\
142         __mkdir "$(DESTDIR)$(SYSCONFDIR)";\
143         if [ ! -f "$(DESTDIR)$(SYSCONFRC)" ]; then \
144                 __copyfile 0644 ./mkrc.rc "$(DESTDIR)$(SYSCONFRC)";\
145         fi
147 uninstall:
148         @echo 'Uninstalling..';\
149         [ -n "$(VERBOSE)" ] &&\
150                 echo '  $$ $(RM) -f "$(DESTDIR)$(BINDIR)/$(UAGENT)" \
151                         "$(DESTDIR)$(MANDIR)/man1/$(UAGENT).1"';\
152         $(RM) -f "$(DESTDIR)$(BINDIR)/$(UAGENT)" \
153                 "$(DESTDIR)$(MANDIR)/man1/$(UAGENT).1";\
154         if [ -n "$(VERBOSE)" ] && [ -f "$(DESTDIR)$(SYSCONFRC)" ]; then \
155                 echo '  NOTE: not removing "$(DESTDIR)$(SYSCONFRC)"';\
156         fi
158 clean:
159         @echo 'Cleaning up..';\
160         [ -n "$(VERBOSE)" ] &&\
161                 echo '  $$ $(RM) -f $(OBJ) $(UAGENT) ./mime_types.h ./mkman.1 \
162                         ./mkrc.rc';\
163         $(RM) -f $(OBJ) $(UAGENT) ./mime_types.h ./mkman.1 ./mkrc.rc
165 distclean: clean
166         @echo 'Deconfiguring..';\
167         [ -n "$(VERBOSE)" ] && echo '  $$ $(RM) -f ./config.* ./*.mk';\
168         $(RM) -f ./config.* ./*.mk
170 _update-version:
171         @if [ -z "$(VERSION)" ]; then \
172                 eval VERSION="`(git describe --tags) 2>/dev/null`";\
173                 if [ -z "$${VERSION}" ]; then \
174                         VERSION="`$(SED) -e 's/[^\"]*\"\([^\"]\{1,\}\)\"/\1/' \
175                                 version.h`";\
176                         echo "$${VERSION}" | $(GREP) -q -F dirty ||\
177                                 VERSION="$${VERSION}-dirty";\
178                 fi;\
179         fi;\
180         trap "$(RM) ./version.tmp" 0 1 2 15;\
181         printf > ./version.tmp "#define VERSION \"$${VERSION}\"\n";\
182         $(CMP) ./version.tmp ./version.h >/dev/null 2>&1 && exit;\
183         mv ./version.tmp ./version.h;\
184         trap - 0 1 2 15
186 # vim:set fenc=utf-8 ft=make: