RN rnmake  3.0.0
Makefile
Go to the documentation of this file.
1 ################################################################################
2 #
3 # Makefile
4 #
5 ifdef RNMAKE_DOXY
6 /*!
7 \file
8 
9 \brief Make the RoadNarrows Make System. Cool.
10 
11 Make the RN Make System documentation and repo packages. Nothing else to make.
12 
13 \pkgsynopsis
14 (Meta) RN Make System
15 
16 \pkgfile{Makefile}
17 
18 \pkgauthor{Robin Knight,robin.knight@roadnarrows.com}
19 
20 \pkgcopyright{2005-2018,RoadNarrows LLC,http://www.roadnarrows.com}
21 
22 \license{MIT}
23 
24 \EulaBegin
25 \EulaEnd
26 
27 \cond RNMAKE_DOXY
28  */
29 endif
30 #
31 ################################################################################
32 
33 #------------------------------------------------------------------------------
34 # Prelims
35 
36 # this makefile is last, get the directory part for rnmake root
37 RNMAKE_ROOT = $(realpath .)
38 
39 # package root
40 export RNMAKE_PKG_ROOT = $(RNMAKE_ROOT)
41 
42 # Define to not require c/c++ dependencies.
43 export nodeps = 1
44 
45 # Sub[Package] Doxygen Configuration File and Styles
46 export RNMAKE_DOXY_CONF_FILE = $(RNMAKE_ROOT)/make/doxy.conf
47 
48 # Include standard collection of functions, etc
49 include $(RNMAKE_ROOT)/Std.mk
50 
51 # Include envirionment
52 include $(RNMAKE_ROOT)/Env.mk
53 
54 # Include package specificiation
55 include $(RNMAKE_ROOT)/make/Pkg.mk
56 
57 
58 #------------------------------------------------------------------------------
59 # Overide Rules.mk Targets
60 
61 # Simple make distro directory structure
62 .PHONY: all
63 all: rnbanner
64  @$(MAKE) -s -f $(RNMAKE_ROOT)/Rules.mk mkdistdirs
65  $(footer)
66 
67 # Only install the documentation
68 .PHONY: install
69 install: rnbanner
70  @$(MAKE) -s -f $(RNMAKE_ROOT)/Rules.mk rel
71  @$(MAKE) -s -f $(RNMAKE_ROOT)/Rules.mk install-docs
72  $(footer)
73 
74 # Only make the documentation and source tarballs
75 .PHONY: tarballs
76 tarballs: rnbanner
77  @$(MAKE) -s -f $(RNMAKE_ROOT)/Rules.mk tarball-doc
78  @$(MAKE) -s -f $(RNMAKE_ROOT)/Rules.mk tarball-src
79  $(footer)
80 
81 # Only make the documentation and source Debian packages
82 .PHONY: deb-pkgs
83 deb-pkgs: rnbanner
84  @$(MAKE) -s -f $(RNMAKE_ROOT)/Rules.mk deb-pkg-doc deb-pkg-src
85  $(footer)
86 
87 # Documents tarball
88 .PHONY: tarball-doc
89 tarball-doc:
90  @$(MAKE) -s -f $(RNMAKE_ROOT)/Rules.mk tarball-doc
91 
92 # Source tarball
93 .PHONY: tarball-src
94 tarball-src:
95  @$(MAKE) -s -f $(RNMAKE_ROOT)/Rules.mk tarball-src
96 
97 .PHONY: distclean clobber
98 clean distclean clobber: rnbanner
99  @$(MAKE) -s -f $(RNMAKE_ROOT)/Rules.mk $(@)
100  $(footer)
101 
102 .PHONY: deps
103 deps:
104 
105 .PHONY: rnbanner
106 rnbanner:
107  $(call printPkgBanner,$(RNMAKE_PKG_FULL_NAME),any,$(MAKECMDGOALS))
108 
109 # $(footer)
110 # Conditionally print footer.
111 footer = $(call printFooter,$(@),$(lasword,$(MAKECMDGOALS)))