Makefile.comm revision 75584
1# Copyright (C) 1989-2000 Free Software Foundation, Inc. 2# Written by James Clark (jjc@jclark.com) 3# 4# This file is part of groff. 5# 6# groff is free software; you can redistribute it and/or modify it under 7# the terms of the GNU General Public License as published by the Free 8# Software Foundation; either version 2, or (at your option) any later 9# version. 10# 11# groff is distributed in the hope that it will be useful, but WITHOUT ANY 12# WARRANTY; without even the implied warranty of MERCHANTABILITY or 13# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14# for more details. 15# 16# You should have received a copy of the GNU General Public License along 17# with groff; see the file COPYING. If not, write to the Free Software 18# Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19# 20# Makefile.comm 21# 22SHELL=/bin/sh 23INCLUDES=-I. -I$(srcdir) \ 24 -I$(top_builddir)/src/include -I$(top_srcdir)/src/include 25ALL_CCFLAGS=$(INCLUDES) $(CCDEFINES) $(CCFLAGS) $(CPPFLAGS) 26COMPILE.cc=$(CCC) $(ALL_CCFLAGS) -c 27ALL_CFLAGS=$(INCLUDES) $(CDEFINES) $(CFLAGS) $(CPPFLAGS) 28COMPILE.c=$(CC) $(ALL_CFLAGS) -c 29LINK.cc=$(CCC) $(CCFLAGS) $(LDFLAGS) 30LINK.c=$(CC) $(CFLAGS) $(LDFLAGS) 31LIBGROFF=$(top_builddir)/src/libs/libgroff/libgroff.a 32LIBBIB=$(top_builddir)/src/libs/libbib/libbib.a 33LIBDRIVER=$(top_builddir)/src/libs/libdriver/libdriver.a 34MLIB= 35XLIBS= 36YTABH= 37YTABC= 38GRAM= 39LIBCLEAN= 40CLEANADD= 41MOSTLYCLEANFILES=$(MANCLEAN) $(PROG) $(OBJS) $(GENSRCS) $(GENHDRS) \ 42 depend.temp core y.output $(CLEANADD) 43CLEANFILES=$(LIBCLEAN) 44DISTCLEANFILES=TAGS Makefile Makefile.dep 45REALCLEANFILES=$(YTABC) $(YTABH) 46NAMEPREFIX= 47HDRS= 48MANPAGES=$(MAN1) $(MAN5) $(MAN7) 49MANCLEAN=$(MANPAGES) 50fontsubdir=$(fontdir)/dev$(DEV) 51 52all install install_bin install_data TAGS depend distfiles uninstall_sub: 53 54install: prefix_must_exist install_bin install_data 55uninstall: uninstall_sub 56pure: 57 58.PHONY: all clean distclean mostlyclean realclean extraclean depend distfiles 59.PHONY: install install_bin install_data prefix_must_exist 60.PHONY: uninstall uninstall_sub 61.PHONY: pure 62 63prefix_must_exist: 64 @test -d $(prefix) \ 65 || (echo ; \ 66 echo The prefix directory \`$(prefix)\' doesn\'t exist; \ 67 echo ; \ 68 exit 1) 69 70mostlyclean: 71 -rm -f $(MOSTLYCLEANFILES) 72 73clean: 74 -rm -f $(CLEANFILES) $(MOSTLYCLEANFILES) 75 76distclean: 77 -rm -f $(DISTCLEANFILES) $(CLEANFILES) $(MOSTLYCLEANFILES) 78 79realclean: 80 -rm -f $(REALCLEANFILES) $(DISTCLEANFILES) $(CLEANFILES) \ 81 $(MOSTLYCLEANFILES) 82 83extraclean: 84 -rm -f $(DISTCLEANFILES) $(CLEANFILES) $(MOSTLYCLEANFILES) \ 85 \#* *~ =* core junk grot old temp tmp tem 86 87.SUFFIXES: 88.SUFFIXES: .o .cc .c .y .man .n 89 90.cc.o: 91 $(COMPILE.cc) $< 92 93.c.o: 94 $(COMPILE.c) $< 95 96.y.cc: 97 if test -n "$(YTABH)"; then \ 98 $(YACC) $(YACCFLAGS) -d $<; \ 99 else \ 100 $(YACC) $(YACCFLAGS) $<; \ 101 fi 102 -test -f y.tab.h && mv y.tab.h y_tab.h 103 -test -f y.tab.c && mv y.tab.c y_tab.c 104 mv y_tab.c $@ 105# Avoid ending up with two versions of $(YTABH). 106 if test -n "$(YTABH)"; then \ 107 if test -f $(srcdir)/$(YTABH); then \ 108 rm -f $(YTABH); \ 109 mv y_tab.h $(srcdir)/$(YTABH); \ 110 else \ 111 mv y_tab.h $(YTABH); \ 112 fi; \ 113 fi 114 115version=`cat $(top_srcdir)/VERSION` 116# No additional number for the groff archive if revision is zero 117revision=`sed -e 's/^0$$//' -e 's/^[1-9].*$$/.&/' $(top_srcdir)/REVISION` 118 119.man.n: 120 @echo Making $@ from $< 121 @-rm -f $@ 122 @sed -e "s|@BINDIR@|$(bindir)|g" \ 123 -e "s|@FONTDIR@|$(fontdir)|g" \ 124 -e "s|@FONTPATH@|$(fontpath)|g" \ 125 -e "s|@MACRODIR@|$(tmacdir)|g" \ 126 -e "s|@SYSTEMMACRODIR@|$(systemtmacdir)|g" \ 127 -e "s|@LOCALMACRODIR@|$(localtmacdir)|g" \ 128 -e "s|@MACROPATH@|$(tmacpath)|g" \ 129 -e "s|@DEVICE@|$(DEVICE)|g" \ 130 -e "s|@DEFAULT_INDEX@|$(indexdir)/$(indexname)|g" \ 131 -e "s|@DEFAULT_INDEX_NAME@|$(indexname)|g" \ 132 -e "s|@INDEX_SUFFIX@|$(indexext)|g" \ 133 -e "s|@COMMON_WORDS_FILE@|$(common_words_file)|g" \ 134 -e "s|@MAN1EXT@|$(man1ext)|g" \ 135 -e "s|@MAN5EXT@|$(man5ext)|g" \ 136 -e "s|@MAN7EXT@|$(man7ext)|g" \ 137 -e "s|@TMAC_S_PREFIX@|$(tmac_s_prefix)|g" \ 138 -e "s|@TMAC_M_PREFIX@|$(tmac_m_prefix)|g" \ 139 -e "s|@TMAC_AN_PREFIX@|$(tmac_an_prefix)|g" \ 140 -e "s|@TMAC_MDIR@|$(tmacdir)/mm|g" \ 141 -e "s|@BROKEN_SPOOLER_FLAGS@|$(BROKEN_SPOOLER_FLAGS)|g" \ 142 -e "s|@VERSION@|$(version)$(revision)|g" \ 143 -e "s|@MDATE@|`$(SHELL) $(top_srcdir)/mdate.sh $<`|g" \ 144 -e "s|@g@|$(g)|g" \ 145 -e "s!@G@!`echo $(g) | tr [a-z] [A-Z]`!g" \ 146 $< >$@ 147 148.PHONY: install_man 149install_man: 150 -test -d $(manroot) || $(mkinstalldirs) $(manroot) 151 -test -d $(man1dir) || $(mkinstalldirs) $(man1dir) 152 @-pages="$(MAN1)"; \ 153 for p in $$pages; do \ 154 prog=`basename $$p .n`; \ 155 target=$(man1dir)/$(NAMEPREFIX)$$prog.$(man1ext); \ 156 rm -f $$target; \ 157 echo $(INSTALL_DATA) $$p $$target; \ 158 $(INSTALL_DATA) $$p $$target; \ 159 done 160 -test -d $(man5dir) || $(mkinstalldirs) $(man5dir) 161 @-pages="$(MAN5)"; \ 162 for p in $$pages; do \ 163 target=$(man5dir)/`basename $$p .n`.$(man5ext); \ 164 rm -f $$target; \ 165 echo $(INSTALL_DATA) $$p $$target; \ 166 $(INSTALL_DATA) $$p $$target; \ 167 done 168 -test -d $(man7dir) || $(mkinstalldirs) $(man7dir) 169 @-pages="$(MAN7)"; \ 170 for p in $$pages; do \ 171 target=$(man7dir)/`basename $$p .n`.$(man7ext); \ 172 rm -f $$target; \ 173 echo $(INSTALL_DATA) $$p $$target; \ 174 $(INSTALL_DATA) $$p $$target; \ 175 done 176 177.PHONY: uninstall_man 178uninstall_man: 179 @-pages="$(MAN1)"; \ 180 for p in $$pages; do \ 181 target=$(man1dir)/$(NAMEPREFIX)`basename $$p .n`.$(man1ext); \ 182 echo rm -f $$target; \ 183 rm -f $$target; \ 184 done 185 @-pages="$(MAN5)"; \ 186 for p in $$pages; do \ 187 target=$(man5dir)/`basename $$p .n`.$(man5ext); \ 188 echo rm -f $$target; \ 189 rm -f $$target; \ 190 done 191 @-pages="$(MAN7)"; \ 192 for p in $$pages; do \ 193 target=$(man7dir)/`basename $$p .n`.$(man7ext); \ 194 echo rm -f $$target; \ 195 rm -f $$target; \ 196 done 197 198.PHONY: install_prog 199install_prog: 200 -test -d $(bindir) || $(mkinstalldirs) $(bindir) 201 rm -f $(bindir)/$(NAMEPREFIX)$(PROG) 202 $(INSTALL_PROGRAM) $(PROG) $(bindir)/$(NAMEPREFIX)$(PROG) 203 204.PHONY: uninstall_prog 205uninstall_prog: 206 -rm -f $(bindir)/$(NAMEPREFIX)$(PROG) 207 208.PHONY: install_dev 209install_dev: 210 -test -d $(datadir) || $(mkinstalldirs) $(datadir) 211 -test -d $(dataprogramdir) || $(mkinstalldirs) $(dataprogramdir) 212 -test -d $(datasubdir) || $(mkinstalldirs) $(datasubdir) 213 -test -d $(fontdir) || $(mkinstalldirs) $(fontdir) 214 -test -d $(fontsubdir) || $(mkinstalldirs) $(fontsubdir) 215 -if test -d $(srcdir)/generate; then \ 216 test -d $(fontsubdir)/generate || \ 217 $(mkinstalldirs) $(fontsubdir)/generate; \ 218 fi 219 -for f in $(DEVFILES); do \ 220 rm -f $(fontsubdir)/$$f; \ 221 if test -f $$f; then \ 222 $(INSTALL_DATA) $$f $(fontsubdir)/$$f; \ 223 else \ 224 $(INSTALL_DATA) $(srcdir)/$$f $(fontsubdir)/$$f; \ 225 fi; \ 226 done 227 228.PHONY: uninstall_dev 229uninstall_dev: 230 -for f in $(DEVFILES); do rm -f $(fontsubdir)/$$f; done 231 -if test -d $(fontsubdir)/generate; then \ 232 rmdir $(fontsubdir)/generate; \ 233 fi 234 -rmdir $(fontsubdir) 235 236.PHONY: depend_src 237depend_src: depend.temp 238 mv depend.temp Makefile.dep 239 240depend.temp: FORCE 241 > depend.temp; 242 test -z "$(CCSRCS)$(YTABC)" \ 243 || $(CCC) $(ALL_CCFLAGS) -MM $(CCSRCS) $(YTABC) >>depend.temp 244 test -z "$(CSRCS)" \ 245 || $(CC) $(ALL_CFLAGS) -MM $(CSRCS) >>depend.temp 246 if test -n "$(YTABH)"; then \ 247 sed -e 's|$(YTABH)|$(YTABC)|g' depend.temp >depend1.temp; \ 248 mv depend1.temp depend.temp; \ 249 fi 250 251.PHONY: TAGS_src 252TAGS_src: 253 $(ETAGS) $(ETAGSFLAGS) $(CCSRCS) $(CSRCS) 254 test -z "$(GRAM)$(HDRS)" \ 255 || $(ETAGS) $(ETAGSFLAGS) -a $(ETAGSCCFLAG) $(GRAM) $(HDRS) 256 257Makefile: 258 -rm -f Makefile 259 echo srcdir=$(srcdir) >>Makefile 260 echo VPATH=$(VPATH) >>Makefile 261 cat $(MAKEFILEPARTS) /dev/null >>Makefile 262 263FORCE: 264 265.NOEXPORT: 266