The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/conf/Makefile.alpha

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # Makefile.alpha -- with config changes.
    2 # Copyright 1990 W. Jolitz
    3 #       from: @(#)Makefile.alpha        7.1 5/10/91
    4 # $FreeBSD$
    5 #
    6 # Makefile for FreeBSD
    7 #
    8 # This makefile is constructed from a machine description:
    9 #       config machineid
   10 # Most changes should be made in the machine description
   11 #       /sys/alpha/conf/``machineid''
   12 # after which you should do
   13 #        config machineid
   14 # Generic makefile changes should be made in
   15 #       /sys/conf/Makefile.alpha
   16 # after which config should be rerun for all machines.
   17 #
   18 
   19 # Which version of config(8) is required.
   20 %VERSREQ=       400019
   21 
   22 # Can be overridden by makeoptions or /etc/make.conf
   23 KERNEL?=        kernel
   24 STD8X16FONT?=   iso
   25 
   26 .if !defined(S)
   27 .if exists(./@/.)
   28 S=      ./@
   29 .else
   30 S=      ../..
   31 .endif
   32 .endif
   33 M=      ${MACHINE_ARCH}
   34 
   35 SIZE?=          size
   36 OBJCOPY?=       objcopy
   37 
   38 COPTFLAGS?=-O -pipe
   39 .if !defined(NO_CPU_COPTFLAGS)
   40 COPTFLAGS+= ${_CPUCFLAGS}
   41 .endif
   42 INCLUDES= -nostdinc -I- -I. -I$S
   43 # This hack is to allow kernel compiles to succeed on machines w/out srcdist
   44 .if exists($S/../include)
   45 INCLUDES+= -I$S/../include
   46 .else
   47 INCLUDES+= -I/usr/include
   48 .endif
   49 
   50 # This hack lets us use the ipfilter code without spamming a new
   51 # include path into 100+ source files.
   52 INCLUDES+= -I$S/contrib/ipfilter
   53 
   54 COPTS=  ${INCLUDES} ${IDENT} -D_KERNEL -include opt_global.h
   55 CFLAGS= ${COPTFLAGS} ${CWARNFLAGS} ${DEBUG} ${COPTS}
   56 
   57 # XXX LOCORE means "don't declare C stuff" not "for locore.s".
   58 ASM_CFLAGS= -x assembler-with-cpp -DLOCORE ${CFLAGS}
   59 
   60 DEFINED_PROF=   ${PROF}
   61 .if defined(PROF)
   62 CFLAGS+=        -malign-functions=4
   63 .if ${PROFLEVEL} >= 2
   64 IDENT+= -DGPROF4 -DGUPROF
   65 PROF+=  -mprofiler-epilogue
   66 .endif
   67 .endif
   68 
   69 # Put configuration-specific C flags last (except for ${PROF}) so that they
   70 # can override the others.
   71 CFLAGS+=        ${CONF_CFLAGS}
   72 
   73 NORMAL_C= ${CC} -c ${CFLAGS} ${PROF} ${.IMPSRC}
   74 NORMAL_C_C= ${CC} -c ${CFLAGS} ${PROF} ${.IMPSRC}
   75 NORMAL_S= ${CC} -c ${ASM_CFLAGS} ${.IMPSRC}
   76 PROFILE_C= ${CC} -c ${CFLAGS} ${.IMPSRC}
   77 
   78 GEN_CFILES= $S/$M/$M/genassym.c
   79 # setdef0.c and setdef1.c are intentionally
   80 # omitted from SYSTEM_CFILES.  They include setdefs.h, a header which
   81 # is generated from all of ${OBJS}.  We don't want to have to compile
   82 # everything just to do a make depend.
   83 SYSTEM_CFILES= ioconf.c vnode_if.c config.c
   84 SYSTEM_SFILES= $S/$M/$M/locore.s
   85 SYSTEM_DEP= Makefile ${SYSTEM_OBJS}
   86 SYSTEM_OBJS= locore.o setdef0.o vnode_if.o ${OBJS} ioconf.o config.o \
   87         setdef1.o hack.So
   88 SYSTEM_LD= @${LD} -Bdynamic -T $S/conf/ldscript.$M \
   89         -e locorestart \
   90         -export-dynamic -dynamic-linker /red/herring \
   91         -o ${.TARGET} -X ${SYSTEM_OBJS} vers.o
   92 SYSTEM_LD_TAIL= @${OBJCOPY} --strip-symbol gcc2_compiled. ${.TARGET} ; \
   93         ${SIZE} ${.TARGET} ; chmod 755 ${.TARGET}
   94 SYSTEM_DEP+= $S/conf/ldscript.$M
   95 
   96 %BEFORE_DEPEND
   97 
   98 %OBJS
   99 
  100 %CFILES
  101 
  102 %SFILES
  103 
  104 %MFILES
  105 
  106 %CLEAN
  107 
  108 .PHONY: all modules
  109 all: ${KERNEL}
  110 
  111 depend: kernel-depend
  112 clean:  kernel-clean
  113 cleandepend:  kernel-cleandepend
  114 tags:  kernel-tags
  115 install install.debug: kernel-install
  116 reinstall reinstall.debug: kernel-reinstall
  117 
  118 .if !defined(DEBUG)
  119 FULLKERNEL=     ${KERNEL}
  120 .else
  121 FULLKERNEL=     ${KERNEL}.debug
  122 ${KERNEL}: ${FULLKERNEL}
  123         ${OBJCOPY} --strip-debug ${FULLKERNEL} ${KERNEL}
  124 .endif
  125 
  126 ${FULLKERNEL}: ${SYSTEM_DEP} vers.o
  127         @rm -f ${.TARGET}
  128         @echo linking ${.TARGET}
  129         ${SYSTEM_LD}
  130         ${SYSTEM_LD_TAIL}
  131 
  132 .if !exists(.depend)
  133 ${SYSTEM_OBJS}: vnode_if.h ${BEFORE_DEPEND:M*.h}
  134 .endif
  135 
  136 kernel-clean:
  137         rm -f *.o *.so *.So *.ko *.s eddep errs \
  138               ${FULLKERNEL} ${KERNEL} linterrs makelinks \
  139               setdef[01].c setdefs.h tags \
  140               vers.c vnode_if.c vnode_if.h ${CLEAN}
  141 
  142 #lint: /tmp
  143 #       @lint -hbxn -DGENERIC -Dvolatile= ${COPTS} \
  144 #         $S/$M/$M/Locore.c ${CFILES} ioconf.c | \
  145 #           grep -v 'struct/union .* never defined' | \
  146 #           grep -v 'possible pointer alignment problem'
  147 
  148 locore.o: $S/$M/$M/locore.s assym.s
  149         ${NORMAL_S}
  150 
  151 # This is a hack.  BFD "optimizes" away dynamic mode if there are no
  152 # dynamic references.  We could probably do a '-Bforcedynamic' mode like
  153 # in the a.out ld.  For now, this works.
  154 hack.So: Makefile
  155         touch hack.c
  156         ${CC} -shared -nostdlib hack.c -o hack.So
  157         rm -f hack.c
  158 
  159 .ORDER: setdefs.h setdef0.c setdef1.c
  160 
  161 setdef0.o: setdef0.c setdefs.h
  162         ${NORMAL_C}
  163 
  164 setdef1.o: setdef1.c setdefs.h
  165         ${NORMAL_C}
  166 
  167 setdef0.c setdef1.c setdefs.h: ${OBJS}
  168         @gensetdefs ${OBJS}
  169 
  170 # this rule stops ./assym.s in .depend from causing problems
  171 ./assym.s: assym.s
  172 
  173 assym.s: $S/kern/genassym.sh genassym.o
  174         sh $S/kern/genassym.sh genassym.o > ${.TARGET}
  175 
  176 genassym.o: $S/$M/$M/genassym.c
  177         ${CC} -c ${CFLAGS} $S/$M/$M/genassym.c
  178 
  179 SYSTEM_OBJS+=   __divqu.o __divq.o __divlu.o __divl.o
  180 SYSTEM_OBJS+=   __remqu.o __remq.o __remlu.o __reml.o
  181 CLEAN+= __divqu.S __divq.S __divlu.S __divl.S
  182 CLEAN+= __remqu.S __remq.S __remlu.S __reml.S
  183 
  184 __divqu.S: $S/$M/$M/divrem.m4
  185         @echo 'building ${.TARGET} from ${.ALLSRC}'
  186         @(echo "define(NAME,\`__divqu')define(OP,\`div')define(S,\`false')"; \
  187          echo "define(WORDSIZE,64)"; cat ${.ALLSRC}) | m4 > ${.TARGET}
  188 
  189 __divq.S: $S/$M/$M/divrem.m4
  190         @echo 'building ${.TARGET} from ${.ALLSRC}'
  191         @(echo "define(NAME,\`__divq')define(OP,\`div')define(S,\`true')"; \
  192          echo "define(WORDSIZE,64)"; cat ${.ALLSRC}) | m4 > ${.TARGET}
  193 
  194 __divlu.S: $S/$M/$M/divrem.m4
  195         @echo 'building ${.TARGET} from ${.ALLSRC}'
  196         @(echo "define(NAME,\`__divlu')define(OP,\`div')define(S,\`false')"; \
  197          echo "define(WORDSIZE,32)"; cat ${.ALLSRC}) | m4 > ${.TARGET}
  198 
  199 __divl.S: $S/$M/$M/divrem.m4
  200         @echo 'building ${.TARGET} from ${.ALLSRC}'
  201         @(echo "define(NAME,\`__divl')define(OP,\`div')define(S,\`true')"; \
  202          echo "define(WORDSIZE,32)"; cat ${.ALLSRC}) | m4 > ${.TARGET}
  203 
  204 __remqu.S: $S/$M/$M/divrem.m4
  205         @echo 'building ${.TARGET} from ${.ALLSRC}'
  206         @(echo "define(NAME,\`__remqu')define(OP,\`rem')define(S,\`false')"; \
  207          echo "define(WORDSIZE,64)"; cat ${.ALLSRC}) | m4 > ${.TARGET}
  208 
  209 __remq.S: $S/$M/$M/divrem.m4
  210         @echo 'building ${.TARGET} from ${.ALLSRC}'
  211         @(echo "define(NAME,\`__remq')define(OP,\`rem')define(S,\`true')"; \
  212          echo "define(WORDSIZE,64)"; cat ${.ALLSRC}) | m4 > ${.TARGET}
  213 
  214 __remlu.S: $S/$M/$M/divrem.m4
  215         @echo 'building ${.TARGET} from ${.ALLSRC}'
  216         @(echo "define(NAME,\`__remlu')define(OP,\`rem')define(S,\`false')"; \
  217          echo "define(WORDSIZE,32)"; cat ${.ALLSRC}) | m4 > ${.TARGET}
  218 
  219 __reml.S: $S/$M/$M/divrem.m4
  220         @echo 'building ${.TARGET} from ${.ALLSRC}'
  221         @(echo "define(NAME,\`__reml')define(OP,\`rem')define(S,\`true')"; \
  222          echo "define(WORDSIZE,32)"; cat ${.ALLSRC}) | m4 > ${.TARGET}
  223 
  224 ${SYSTEM_OBJS} genassym.o vers.o: opt_global.h
  225 
  226 kernel-depend: assym.s vnode_if.h ${BEFORE_DEPEND} \
  227             ${CFILES} ${SYSTEM_CFILES} ${GEN_CFILES} ${SFILES} ${SYSTEM_SFILES}
  228         rm -f .newdep
  229         mkdep -a -f .newdep ${CFLAGS} ${CFILES} ${SYSTEM_CFILES} ${GEN_CFILES}
  230         env MKDEP_CPP="${CC} -E" \
  231             mkdep -a -f .newdep ${ASM_CFLAGS} ${SFILES} ${SYSTEM_SFILES}
  232         rm -f .depend
  233         mv -f .newdep .depend
  234 
  235 kernel-cleandepend:
  236         rm -f .depend
  237 
  238 links:
  239         egrep '#if' ${CFILES} | sed -f $S/conf/defines | \
  240           sed -e 's/:.*//' -e 's/\.c/.o/' | sort -u > dontlink
  241         echo ${CFILES} | tr -s ' ' '\12' | sed 's/\.c/.o/' | \
  242           sort -u | comm -23 - dontlink | \
  243           sed 's,../.*/\(.*.o\),rm -f \1;ln -s ../GENERIC/\1 \1,' > makelinks
  244         sh makelinks && rm -f dontlink
  245 
  246 kernel-tags:
  247         @[ -f .depend ] || { echo "you must make depend first"; exit 1; }
  248         sh $S/conf/systags.sh
  249         rm -f tags1
  250         sed -e 's,      ../,    ,' tags > tags1
  251 
  252 kernel-install kernel-install.debug:
  253         @if [ ! -f ${KERNEL}${.TARGET:S/kernel-install//} ] ; then \
  254                 echo "You must build a kernel first." ; \
  255                 exit 1 ; \
  256         fi
  257 .if exists(${DESTDIR}/${KERNEL})
  258         -chflags noschg ${DESTDIR}/${KERNEL}
  259         mv ${DESTDIR}/${KERNEL} ${DESTDIR}/${KERNEL}.old
  260 .endif
  261         ${INSTALL} -m 555 -o root -g wheel -fschg \
  262                 ${KERNEL}${.TARGET:S/kernel-install//} ${DESTDIR}/${KERNEL}
  263 
  264 kernel-reinstall kernel-reinstall.debug:
  265         ${INSTALL} -m 555 -o root -g wheel -fschg \
  266                 ${KERNEL}${.TARGET:S/kernel-reinstall//} ${DESTDIR}/${KERNEL}
  267 
  268 .if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists($S/modules)
  269 all:    modules
  270 depend: modules-depend
  271 clean:  modules-clean
  272 cleandepend:  modules-cleandepend
  273 cleandir:  modules-cleandir
  274 tags:  modules-tags
  275 install install.debug: modules-install
  276 reinstall reinstall.debug: modules-reinstall
  277 .endif
  278 
  279 MKMODULESENV=   MAKEOBJDIRPREFIX=${.OBJDIR}/modules
  280 .if defined(MODULES_OVERRIDE)
  281 MKMODULESENV+=  MODULES_OVERRIDE="${MODULES_OVERRIDE}"
  282 .endif
  283 .if defined(DEBUG)
  284 MKMODULESENV+=  DEBUG="${DEBUG}" DEBUG_FLAGS="${DEBUG}"
  285 .endif
  286 
  287 modules:
  288         @mkdir -p ${.OBJDIR}/modules
  289         cd $S/modules ; env ${MKMODULESENV} ${MAKE} obj ; \
  290             env ${MKMODULESENV} ${MAKE} all
  291 
  292 modules-depend:
  293         @mkdir -p ${.OBJDIR}/modules
  294         cd $S/modules ; env ${MKMODULESENV} ${MAKE} obj ; \
  295             env ${MKMODULESENV} ${MAKE} depend
  296 
  297 modules-clean:
  298         cd $S/modules ; env ${MKMODULESENV} ${MAKE} clean
  299 
  300 modules-cleandepend:
  301         cd $S/modules ; env ${MKMODULESENV} ${MAKE} cleandepend
  302 
  303 modules-clobber:        modules-clean
  304         rm -rf ${MKMODULESENV}
  305 
  306 modules-cleandir:
  307         cd $S/modules ; env ${MKMODULESENV} ${MAKE} cleandir
  308 
  309 modules-tags:
  310         cd $S/modules ; env ${MKMODULESENV} ${MAKE} tags
  311 
  312 modules-install modules-install.debug:
  313 .if !defined(NO_MODULES_OLD)
  314         if [ -d ${DESTDIR}/modules -a -n "`ls ${DESTDIR}/modules`" ]; then \
  315                 mkdir -p ${DESTDIR}/modules.old; \
  316                 cp -p ${DESTDIR}/modules/* ${DESTDIR}/modules.old; \
  317         fi;
  318 .endif
  319         cd $S/modules ; env ${MKMODULESENV} ${MAKE} install
  320 
  321 modules-reinstall modules-reinstall.debug:
  322         cd $S/modules ; env ${MKMODULESENV} ${MAKE} install
  323 
  324 config.o:
  325         ${NORMAL_C}
  326 
  327 ioconf.o:
  328         ${NORMAL_C}
  329 
  330 vers.c: $S/conf/newvers.sh $S/sys/param.h ${SYSTEM_DEP}
  331         sh $S/conf/newvers.sh ${KERN_IDENT} ${IDENT}
  332 
  333 # XXX strictly, everything depends on Makefile because changes to ${PROF}
  334 # only appear there, but we don't handle that.
  335 vers.o:
  336         ${NORMAL_C}
  337 
  338 vnode_if.c: $S/kern/vnode_if.pl $S/kern/vnode_if.src
  339         perl5 $S/kern/vnode_if.pl -c $S/kern/vnode_if.src
  340 
  341 vnode_if.h: $S/kern/vnode_if.pl $S/kern/vnode_if.src
  342         perl5 $S/kern/vnode_if.pl -h $S/kern/vnode_if.src
  343 
  344 vnode_if.o:
  345         ${NORMAL_C}
  346 
  347 .if exists($S/../share/mk)
  348 .include "$S/../share/mk/bsd.kern.mk"
  349 .else
  350 .include <bsd.kern.mk>
  351 .endif
  352 
  353 %RULES
  354 
  355 # DO NOT DELETE THIS LINE -- make depend uses it

Cache object: 18058c3c95a4c12929edfe5340f19b70


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.