[BACK]Return to Makefile.mdset CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / distrib / common

Annotation of src/distrib/common/Makefile.mdset, Revision 1.28

1.28    ! bouyer      1: #      $NetBSD: Makefile.mdset,v 1.27 2005/05/31 16:23:37 lukem Exp $
1.1       lukem       2: #
1.22      lukem       3: # Makefile snippet to ${TOOL_MDSETIMAGE} file system images into kernels
1.1       lukem       4: #
                      5:
                      6: #
                      7: # Required variables:
1.10      lukem       8: #      NETBSDSRCDIR    Top level of src tree (set by <bsd.own.mk>)
1.22      lukem       9: #      MDSETTARGETS    List of images to ${TOOL_MDSETIMAGE} into kernels,
1.7       lukem      10: #                      containing one or more tuples of the form:
1.4       lukem      11: #                              KERNEL  IMAGE   FILENAME
1.7       lukem      12: #
1.22      lukem      13: #                      The kernel is ${TOOL_MDSETIMAGE} with ${IMAGE},
1.13      lukem      14: #                      ${STRIP}ped (after the symbols are stored in
1.7       lukem      15: #                      ${FILENAME}.symbols.gz), and gzipped into
                     16: #                      ${FILENAME}.gz.
                     17: #
1.20      lukem      18: #                      If KERNEL does not contain a `/', use
                     19: #                      ${KERNOBJDIR}/KERNEL/netbsd as the kernel.
                     20: #
1.18      lukem      21: #                      If FILENAME is "-", use "netbsd-${KERNEL}" as
1.20      lukem      22: #                      the target name.  This may not be a sensible
                     23: #                      name if KERNEL contains a `/'.
1.1       lukem      24: #
                     25: # Optional variables:
1.11      lukem      26: #      MDSET_RELEASEDIR                Where to install release kernels.
1.7       lukem      27: #
1.27      lukem      28: #      MDSET_NOGZIP                    If defined, don't gzip any kernels.
                     29: #
                     30: #      MDSET_NOGZIP.${FILENAME}        If defined, don't gzip ${FILENAME}
                     31: #
1.23      lukem      32: #      MDSET_NOSTRIP                   If defined, don't strip any kernels.
                     33: #
1.16      lukem      34: #      MDSET_NOSTRIP.${FILENAME}       If defined, don't strip ${FILENAME}
                     35: #
1.23      lukem      36: #      MDSET_NOSYMBOLS                 If defined, don't generate *.symbols.gz
                     37: #
1.15      lukem      38: #      MDSET_NOSYMBOLS.${FILENAME}     If defined, don't generate
1.13      lukem      39: #                                      ${FILENAME}.symbols.gz
                     40: #
1.27      lukem      41: #      MDSET_POST                      For each kernel,
                     42: #                                      execute this after ${NM} / ${STRIP}.
                     43: #                                      Kernel is available as "${.TARGET}"
                     44: #
1.15      lukem      45: #      MDSET_POST.${FILENAME}          For each kernel named ${FILENAME},
1.6       lukem      46: #                                      execute this after ${NM} / ${STRIP}.
1.15      lukem      47: #                                      Kernel is available as "${.TARGET}"
                     48: #
                     49: #      MDSET_SUFFIXES.${FILENAME}      List of extra install kernel suffixes
                     50: #                                      and build commands to create from
                     51: #                                      ${FILENAME} after its created by
1.22      lukem      52: #                                      ${TOOL_MDSETIMAGE} ; ${NM} ; ${STRIP}:
1.15      lukem      53: #                                              SUFFIX  COMMANDVAR
                     54: #                                      "${.TARGET}" is "${FILENAME}.${SUFFIX}"
                     55: #                                      COMMANDVAR is the name of the variable
                     56: #                                      containing the command to build
                     57: #                                      ${.TARGET}.
1.3       lukem      58: #
                     59: # Variables modified by this:
1.4       lukem      60: #      KERNELS                 List of kernel .gz files to build
1.13      lukem      61: #      KERNELSYMS              List of kernel .symbol.gz files to build
1.1       lukem      62: #
                     63:
1.21      lukem      64: .if !defined(_MAKEFILE_MDSET_)
                     65: _MAKEFILE_MDSET_=1
                     66:
1.1       lukem      67: .include <bsd.kernobj.mk>
                     68:
1.6       lukem      69: .for _K _I _F in ${MDSETTARGETS}                       # {
1.20      lukem      70:
                     71: _KERNEL:=${_K}                 # (work around obscure issue in make(1))
                     72: .if (${_KERNEL:M*/*} != "")
                     73: _KERNNAME.${_K}.${_F}:=        ${_K}
                     74: .else
                     75: _KERNNAME.${_K}.${_F}:=        ${KERNOBJDIR}/${_K}/netbsd
                     76: .endif
                     77:
                     78: _FILENAME:=${_F}               # (work around obscure issue in make(1))
1.6       lukem      79: .if ${_FILENAME} == "-"
1.18      lukem      80: _KERNEL.${_K}.${_F}:=  netbsd-${_K}
1.28    ! bouyer     81: _FILENAME:=            ${_KERNEL.${_K}.${_F}}
1.4       lukem      82: .else
1.17      lukem      83: _KERNEL.${_K}.${_F}:=  ${_F}
1.4       lukem      84: .endif
1.1       lukem      85:
1.15      lukem      86: .for _S _C in ${MDSET_SUFFIXES.${_FILENAME}}           # {
1.17      lukem      87: CLEANFILES+=   ${_KERNEL.${_K}.${_F}}.${_S}
1.15      lukem      88:
1.17      lukem      89: ${_KERNEL.${_K}.${_F}}.${_S}: ${_KERNEL.${_K}.${_F}}
1.15      lukem      90: .if defined(${_C})
                     91:        ${${_C}}
                     92: .else
                     93:        @echo "No such variable \"${_C}\""
                     94:        false
                     95: .endif
                     96:
1.27      lukem      97: .if defined(MDSET_NOGZIP.${_FILENAME}) && defined(MDSET_NOGZIP)
                     98: KERNELS+=      ${_KERNEL.${_K}.${_F}}.${_S}
                     99: .else                                                  # {
                    100: KERNELS+=      ${_KERNEL.${_K}.${_F}}.${_S}.gz
                    101:
1.17      lukem     102: ${_KERNEL.${_K}.${_F}}.${_S}.gz: ${_KERNEL.${_K}.${_F}}.${_S}
1.25      lukem     103:        ${_MKTARGET_CREATE}
1.15      lukem     104:        -rm -f ${.TARGET}
                    105:        gzip -9c ${.ALLSRC} > ${.TARGET}
1.27      lukem     106: .endif                                                 # }
1.15      lukem     107:
                    108: .endfor                                                        # }
                    109:
1.23      lukem     110: .if !defined(MDSET_NOSYMBOLS.${_FILENAME}) && !defined(MDSET_NOSYMBOLS)
1.17      lukem     111: KERNELSYMS+=   ${_KERNEL.${_K}.${_F}}.symbols.gz
1.13      lukem     112: .endif
1.1       lukem     113:
1.27      lukem     114: .if defined(MDSET_POST.${_FILENAME}) || defined(MDSET_POST)
                    115: _POST.${_KERNEL.${_K}.${_F}}:= ${${MDSET_POST.${_FILENAME}}:U${MDSET_POST}}
1.6       lukem     116: .endif
                    117:
1.27      lukem     118:
                    119: CLEANFILES+=   ${_KERNEL.${_K}.${_F}}
                    120:
1.20      lukem     121: ${_KERNEL.${_K}.${_F}}: .NOTMAIN ${_KERNNAME.${_K}.${_F}} ${_I}
1.25      lukem     122:        ${_MKTARGET_CREATE} "(from: ${.ALLSRC})"
1.24      dsl       123:        @rm -f ${.TARGET} ${.TARGET}.tmp ${.TARGET}.symbols.gz
                    124:        @cp ${_KERNNAME.${_K}.${_F}} ${.TARGET}.tmp
                    125:        ${TOOL_MDSETIMAGE} -v ${.TARGET}.tmp ${_I}
1.23      lukem     126: .if !defined(MDSET_NOSYMBOLS.${_FILENAME}) && !defined(MDSET_NOSYMBOLS)
1.24      dsl       127:        ${NM} ${.TARGET}.tmp | gzip -9 > ${.TARGET}.symbols.gz
1.1       lukem     128: .endif
1.23      lukem     129: .if !defined(MDSET_NOSTRIP.${_FILENAME}) && !defined(MDSET_NOSTRIP)
1.26      dsl       130:        ${STRIP} -R .comment -R .ident ${.TARGET}.tmp
1.16      lukem     131: .endif
1.24      dsl       132:        @mv ${.TARGET}.tmp ${.TARGET}
1.27      lukem     133: .if defined(MDSET_POST.${_FILENAME}) || defined(MDSET_POST)
1.15      lukem     134:        ${_POST.${.TARGET}}
                    135: .endif
                    136:
1.27      lukem     137: .if defined(MDSET_NOGZIP.${_FILENAME}) || defined(MDSET_NOGZIP)
                    138: KERNELS+=      ${_KERNEL.${_K}.${_F}}
                    139: .else                                                  # {
                    140: KERNELS+=      ${_KERNEL.${_K}.${_F}}.gz
                    141:
1.17      lukem     142: ${_KERNEL.${_K}.${_F}}.gz: ${_KERNEL.${_K}.${_F}}
1.25      lukem     143:        ${_MKTARGET_CREATE}
1.15      lukem     144:        -rm -f ${.TARGET}
                    145:        gzip -9c ${.ALLSRC} > ${.TARGET}
1.27      lukem     146: .endif                                                 # }
1.1       lukem     147:
                    148: .endfor                                                        # }
                    149:
1.12      lukem     150: CLEANFILES+=   ${KERNELS} ${KERNELSYMS}
1.1       lukem     151:
1.12      lukem     152: realall: ${KERNELS}
1.1       lukem     153:
1.11      lukem     154: .if defined(MDSET_RELEASEDIR)
1.14      lukem     155: release:: check_RELEASEDIR .WAIT ${KERNELS}
1.11      lukem     156:        ${RELEASE_INSTALL} ${KERNELS} ${KERNELSYMS} \
1.19      lukem     157:            ${RELEASEDIR}/${MACHINE}/${MDSET_RELEASEDIR}
1.1       lukem     158: .endif
1.21      lukem     159:
                    160:
                    161: .endif # _MAKEFILE_MDSET_

CVSweb <webmaster@jp.NetBSD.org>