Makefile.comm revision 104862
1# Copyright (C) 1989-2000, 2002 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= 41CLEANDIRADD= 42CLEANNOTSRCDIRADD= 43MOSTLYCLEANFILES=$(MANCLEAN) $(PROG) $(OBJS) $(GENSRCS) $(GENHDRS) \ 44 depend.temp core y.output $(CLEANADD) 45CLEANFILES=$(LIBCLEAN) 46DISTCLEANFILES=TAGS Makefile Makefile.dep 47REALCLEANFILES=$(YTABC) $(YTABH) 48NAMEPREFIX= 49HDRS= 50MANPAGES=$(MAN1) $(MAN5) $(MAN7) 51MANCLEAN=$(MANPAGES) 52fontsubdir=$(fontdir)/dev$(DEV) 53 54all install install_bin install_data TAGS depend distfiles uninstall_sub: 55 56install: prefix_must_exist install_bin install_data 57uninstall: uninstall_sub 58pure: 59 60.PHONY: all clean distclean mostlyclean realclean extraclean depend distfiles 61.PHONY: install install_bin install_data prefix_must_exist 62.PHONY: uninstall uninstall_sub 63.PHONY: pure 64 65prefix_must_exist: 66 @test -d $(prefix) \ 67 || (echo ; \ 68 echo The prefix directory \`$(prefix)\' doesn\'t exist; \ 69 echo ; \ 70 exit 1) 71 72mostlyclean: 73 -rm -f $(MOSTLYCLEANFILES) 74 -rm -rf $(CLEANDIRADD) 75 -@if test `cd $(srcdir); pwd` = `pwd`; then \ 76 :; \ 77 else \ 78 rm -f $(CLEANNOTSRCDIRADD); \ 79 fi 80 81clean: mostlyclean 82 -rm -f $(CLEANFILES) 83 84distclean: clean 85 -rm -f $(DISTCLEANFILES) 86 -@if test `cd $(srcdir); pwd` = `pwd`; then \ 87 :; \ 88 else \ 89 rm -f $(YTABC) $(YTABH); \ 90 fi 91 92realclean: distclean 93 -rm -f $(REALCLEANFILES) 94 95extraclean: distclean 96 -rm -f \#* *~ =* core junk grot old temp tmp tem 97 98.SUFFIXES: 99.SUFFIXES: .o .obj .cc .c .y .man .n 100 101.cc.o: 102 $(COMPILE.cc) $< 103 104.c.o: 105 $(COMPILE.c) $< 106 107.cc.obj: 108 $(COMPILE.cc) $< 109 110.c.obj: 111 $(COMPILE.c) $< 112 113.y.cc: 114 if test -n "$(YTABH)"; then \ 115 $(YACC) $(YACCFLAGS) -d $<; \ 116 else \ 117 $(YACC) $(YACCFLAGS) $<; \ 118 fi 119 -test -f y.tab.h && mv y.tab.h y_tab.h 120 -test -f y.tab.c && mv y.tab.c y_tab.c 121 mv y_tab.c $(YTABC) 122 if test -n "$(YTABH)"; then mv y_tab.h $(YTABH); fi 123 124# The next rule is needed for make of Solaris 2.5.1 to override its 125# built-in .y.o rule (which takes precedence over the .y.cc rule above). 126.y.o: 127 if test -n "$(YTABH)"; then \ 128 $(YACC) $(YACCFLAGS) -d $<; \ 129 else \ 130 $(YACC) $(YACCFLAGS) $<; \ 131 fi 132 -test -f y.tab.h && mv y.tab.h y_tab.h 133 -test -f y.tab.c && mv y.tab.c y_tab.c 134 mv y_tab.c $(YTABC) 135 if test -n "$(YTABH)"; then mv y_tab.h $(YTABH); fi 136 $(COMPILE.cc) $(YTABC) 137 138.man.n: 139 @echo Making $@ from $< 140 @-rm -f $@ 141 @sed -e "s|@BINDIR@|$(bindir)|g" \ 142 -e "s|@FONTDIR@|$(fontdir)|g" \ 143 -e "s|@LOCALFONTDIR@|$(localfontdir)|g" \ 144 -e "s|@LEGACYFONTDIR@|$(legacyfontdir)|g" \ 145 -e "s|@MACRODIR@|$(tmacdir)|g" \ 146 -e "s|@SYSTEMMACRODIR@|$(systemtmacdir)|g" \ 147 -e "s|@LOCALMACRODIR@|$(localtmacdir)|g" \ 148 -e "s|@DOCDIR@|$(docdir)|g" \ 149 -e "s|@EXAMPLEDIR@|$(exampledir)|g" \ 150 -e "s|@HTMLDOCDIR@|$(htmldocdir)|g" \ 151 -e "s|@DEVICE@|$(DEVICE)|g" \ 152 -e "s|@DEFAULT_INDEX@|$(indexdir)/$(indexname)|g" \ 153 -e "s|@DEFAULT_INDEX_NAME@|$(indexname)|g" \ 154 -e "s|@INDEX_SUFFIX@|$(indexext)|g" \ 155 -e "s|@COMMON_WORDS_FILE@|$(common_words_file)|g" \ 156 -e "s|@MAN1EXT@|$(man1ext)|g" \ 157 -e "s|@MAN5EXT@|$(man5ext)|g" \ 158 -e "s|@MAN7EXT@|$(man7ext)|g" \ 159 -e "s|@TMAC_S_PREFIX@|$(tmac_s_prefix)|g" \ 160 -e "s|@TMAC_M_PREFIX@|$(tmac_m_prefix)|g" \ 161 -e "s|@TMAC_AN_PREFIX@|$(tmac_an_prefix)|g" \ 162 -e "s|@TMAC_MDIR@|$(tmacdir)/mm|g" \ 163 -e "s|@BROKEN_SPOOLER_FLAGS@|$(BROKEN_SPOOLER_FLAGS)|g" \ 164 -e "s|@VERSION@|$(version)$(revision)|g" \ 165 -e "s|@MDATE@|`$(SHELL) $(top_srcdir)/mdate.sh $<`|g" \ 166 -e "s|@g@|$(g)|g" \ 167 -e "s!@G@!`echo $(g) | tr [a-z] [A-Z]`!g" \ 168 $< >$@ 169 170.PHONY: install_man 171install_man: 172 -test -d $(manroot) || $(mkinstalldirs) $(manroot) 173 -test -d $(man1dir) || $(mkinstalldirs) $(man1dir) 174 @-pages="$(MAN1)"; \ 175 for p in $$pages; do \ 176 prog=`basename $$p .n`; \ 177 target=$(man1dir)/$(NAMEPREFIX)$$prog.$(man1ext); \ 178 rm -f $$target; \ 179 echo $(INSTALL_DATA) $$p $$target; \ 180 $(INSTALL_DATA) $$p $$target; \ 181 done 182 -test -d $(man5dir) || $(mkinstalldirs) $(man5dir) 183 @-pages="$(MAN5)"; \ 184 for p in $$pages; do \ 185 target=$(man5dir)/`basename $$p .n`.$(man5ext); \ 186 rm -f $$target; \ 187 echo $(INSTALL_DATA) $$p $$target; \ 188 $(INSTALL_DATA) $$p $$target; \ 189 done 190 -test -d $(man7dir) || $(mkinstalldirs) $(man7dir) 191 @-pages="$(MAN7)"; \ 192 for p in $$pages; do \ 193 target=$(man7dir)/`basename $$p .n`.$(man7ext); \ 194 rm -f $$target; \ 195 echo $(INSTALL_DATA) $$p $$target; \ 196 $(INSTALL_DATA) $$p $$target; \ 197 done 198 199.PHONY: uninstall_man 200uninstall_man: 201 @-pages="$(MAN1)"; \ 202 for p in $$pages; do \ 203 target=$(man1dir)/$(NAMEPREFIX)`basename $$p .n`.$(man1ext); \ 204 echo rm -f $$target; \ 205 rm -f $$target; \ 206 done 207 @-pages="$(MAN5)"; \ 208 for p in $$pages; do \ 209 target=$(man5dir)/`basename $$p .n`.$(man5ext); \ 210 echo rm -f $$target; \ 211 rm -f $$target; \ 212 done 213 @-pages="$(MAN7)"; \ 214 for p in $$pages; do \ 215 target=$(man7dir)/`basename $$p .n`.$(man7ext); \ 216 echo rm -f $$target; \ 217 rm -f $$target; \ 218 done 219 220.PHONY: install_prog 221install_prog: 222 -test -d $(bindir) || $(mkinstalldirs) $(bindir) 223 rm -f $(bindir)/$(NAMEPREFIX)$(PROG) 224 $(INSTALL_PROGRAM) $(PROG) $(bindir)/$(NAMEPREFIX)$(PROG) 225 226.PHONY: uninstall_prog 227uninstall_prog: 228 -rm -f $(bindir)/$(NAMEPREFIX)$(PROG) 229 230.PHONY: install_dev 231install_dev: 232 -test -d $(datadir) || $(mkinstalldirs) $(datadir) 233 -test -d $(dataprogramdir) || $(mkinstalldirs) $(dataprogramdir) 234 -test -d $(datasubdir) || $(mkinstalldirs) $(datasubdir) 235 -test -d $(fontdir) || $(mkinstalldirs) $(fontdir) 236 -test -d $(fontsubdir) || $(mkinstalldirs) $(fontsubdir) 237 -if test -d $(srcdir)/generate; then \ 238 test -d $(fontsubdir)/generate || \ 239 $(mkinstalldirs) $(fontsubdir)/generate; \ 240 fi 241 -for f in $(DEVFILES); do \ 242 rm -f $(fontsubdir)/$$f; \ 243 if test -f $$f; then \ 244 $(INSTALL_DATA) $$f $(fontsubdir)/$$f; \ 245 else \ 246 $(INSTALL_DATA) $(srcdir)/$$f $(fontsubdir)/$$f; \ 247 fi; \ 248 done 249 250.PHONY: uninstall_dev 251uninstall_dev: 252 -for f in $(DEVFILES); do rm -f $(fontsubdir)/$$f; done 253 -if test -d $(fontsubdir)/generate; then \ 254 rmdir $(fontsubdir)/generate; \ 255 fi 256 -rmdir $(fontsubdir) 257 258.PHONY: depend_src 259depend_src: depend.temp 260 mv depend.temp Makefile.dep 261 262depend.temp: FORCE 263 > depend.temp; 264 test -z "$(CCSRCS)$(YTABC)" \ 265 || $(CCC) $(ALL_CCFLAGS) -MM $(CCSRCS) $(YTABC) >>depend.temp 266 test -z "$(CSRCS)" \ 267 || $(CC) $(ALL_CFLAGS) -MM $(CSRCS) >>depend.temp 268 if test -n "$(YTABH)"; then \ 269 sed -e 's|$(YTABH)|$(YTABC)|g' depend.temp >depend1.temp; \ 270 mv depend1.temp depend.temp; \ 271 fi 272 273.PHONY: TAGS_src 274TAGS_src: 275 $(ETAGS) $(ETAGSFLAGS) $(CCSRCS) $(CSRCS) 276 test -z "$(GRAM)$(HDRS)" \ 277 || $(ETAGS) $(ETAGSFLAGS) -a $(ETAGSCCFLAG) $(GRAM) $(HDRS) 278 279# This rule is only considered for the subdir_Makefile target. 280Makefile: 281 -rm -f Makefile 282 echo srcdir=$(srcdir) >>Makefile 283 echo VPATH=$(VPATH) >>Makefile 284 cat $(MAKEFILEPARTS) /dev/null >>Makefile 285 286FORCE: 287 288.NOEXPORT: 289