/contrib/groff/Makefile.comm

https://bitbucket.org/freebsd/freebsd-head/ · Unknown · 304 lines · 275 code · 29 blank · 0 comment · 0 complexity · e2ad2bc1f66d7c83a73d589fc448c800 MD5 · raw file

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