1 ################################################################################ 41 ################################################################################ 43 #------------------------------------------------------------------------------ 47 # Package Root Directory 49 # Required in each Makefile 51 # Examples: . .. ../.. 58 # Required in each Makefile 60 topdir = $(realpath $(RNMAKE_PKG_ROOT)/..)
62 # Path to RoadNarrows Make System 64 # Package Top Directory. 66 # Required in each Makefile 68 # Examples: /prj/rnmake $(topdir)/rnmake 70 rnmake = $(topdir)/rnmake
73 #------------------------------------------------------------------------------
77 # Subdirectories to Build
79 # The order is important. For example,
if subdir1 builds an local executable
80 # needed by subdir3, then subdir1 must appear before subdir3 in the list.
82 RNMAKE_SUBDIRS = subdir1 \
87 #------------------------------------------------------------------------------
91 # Distribution Static Libraries
93 # List of distribution
static library tags to make. Distribution components
get 94 # (cross) installed on the system.
97 # where the fully qualified <tag> depends on the architecture, but 98 # typically gets converted to lib<tag>.a 100 # Note: A library tag can be listed in both the static and shared library tag 101 # list. In this case, both versions are built. 103 RNMAKE_DIST_STLIBS = mylib1 mylib2
106 # Distribution Shared Libraries 108 # List of distribution shared library tags to make. Distribution components get 109 # (cross) installed on the system. 112 # where the fully qualified <tag> depends on the architecture, but 113 # typically gets converted to lib<tag>.so 115 # Note: A library tag can be listed in both the static and shared library tag 116 # list. In this case, both versions are built. 118 RNMAKE_DIST_SHLIBS = mylib1
121 # Local Static Libraries (i.e. not in distribution) 123 # List of local static library tags to make. Local components get built, but 124 # not installed. Local components are place under the directory $(topdir)/loc/. 127 # where the fully qualified <tag> depends on the architecture, but 128 # typically gets converted to lib<tag>.a 131 # A set of common files, say in $(topdir)/common, used by various other 132 # package components. By building $(topdir)/loc/lib/libcommon.a, other 133 # programs, etc and used the common files. 135 # Note: Local Shared Libraries are not allowed since installed package 136 # commponents would require the shared library. 138 RNMAKE_LOC_STLIBS = myloclib1
141 #------------------------------------------------------------------------------ 144 RNMAKE_DIST_PGMS = pgm1
147 # Local Program Executables (i.e. not in distribution) 149 # List of local program executable tags to make. Local components get built, but 150 # not installed. Local components are place under the directory $(topdir)/loc/. 153 # where the fully qualified <tag> depends on the architecture, but 154 # typically gets converted to <tag> for linux, <tag>.exe for windows. 157 # A tool hoehoehoe is used by other package components to complete the 160 RNMAKE_LOC_PGMS = hoehoehoe
162 # Libraries to Link With 163 pgm1.LIBS = pthread rnr
165 # Library Dependencies 169 #------------------------------------------------------------------------------ 175 # Source files for libraries and programs. 177 # Format: <tag>.SRC.C 178 # where <tag> is an item from one of the DIST_<x> tag lists for 179 # libraries and programs. 181 mylib1.SRC.C = o.c say.c can.c u.c c.c
186 # Source files for libraries and programs. 188 # Format: <tag>.SRC.CXX 189 # where <tag> is an item from one of the DIST_<x> tag lists for 190 # libraries and programs. 192 mylib2.SRC.CXX = file3.cxx file4.cxx
194 # Local library example 195 myloclib1.SRC.C = locfile1.c
198 pgm1.SRC.C = lions.c tigers.c and.c bears.c
200 # Local program example 201 pgm2.SRC.C = what.c a.c joke.c
204 #------------------------------------------------------------------------------ 208 TGT_SPECIAL = lookatme
210 # ...to have Rules.mk call this on make [all] 215 TGT_INS_SPECIAL = nohands
217 # ...to have Rules.mk call this on make install 221 #------------------------------------------------------------------------------ 226 # Sub[Package] Language (used to facilitate linking) 234 # Sub[Package] Extra Include Directories 235 EXTRA_INCDIRS = /myenv/include /yourenv/include
237 # Sub[Package] Extra System Include Directories 240 # Sub[Package] Extra C PreProcessor Flags 243 # Sub[Package] Extra C Flags 246 # Sub[Package] Extra CXX Flags 249 # Sub[Package] Extra Library Paths (-L<path> ...) 250 EXTRA_LD_LIBDIRS = /myenv/lib
252 # Sub[Package] Extra External Libraries 253 EXTRA_LD_LIBS = -lmylib
255 # Sub[Package] Extra Link Flags 258 # Sub[Package] Extra Release Files (docs) 261 # Sub[Package] extra 'all' default target 262 EXTRA_TGT_ALL = mything
264 # Sub[Package] extra 'intall' target 265 EXTRA_TGT_INSTALL = yourthing
268 # Document SubPackage Name 270 # Optional document subdirectory where [sub]package documentation will be 273 # Installed location: $(docdir)/$(RNMAKE_PKG_FULL_NAME)/$(DOC_SUBDIR) 275 # Example: /usr/share/doc/pkg-1.3.0/mydocdir/ 279 # Sub[Package] Doxygen Configuration File 280 RNMAKE_DOXY_CONF_FILE = $(topdir)/make/doxy-mypgm.conf
282 #------------------------------------------------------------------------------
286 # Include Rules Makefile
287 include $(rnmake)/Rules.mk
290 #------------------------------------------------------------------------------ 291 # Extra Targets (after Rules.mk) 295 @echo
"do my default thing" 299 @echo
"do your intall thing"