1# $Id: init.mk,v 1.17 2020/05/25 20:15:07 sjg Exp $ 2# 3# @(#) Copyright (c) 2002, Simon J. Gerraty 4# 5# This file is provided in the hope that it will 6# be of use. There is absolutely NO WARRANTY. 7# Permission to copy, redistribute or otherwise 8# use this file is hereby granted provided that 9# the above copyright notice and this notice are 10# left intact. 11# 12# Please send copies of changes and bug-fixes to: 13# sjg@crufty.net 14# 15 16.if !target(__${.PARSEFILE}__) 17__${.PARSEFILE}__: 18 19.if ${MAKE_VERSION:U0} > 20100408 20_this_mk_dir := ${.PARSEDIR:tA} 21.else 22_this_mk_dir := ${.PARSEDIR} 23.endif 24 25.-include <local.init.mk> 26.-include <${.CURDIR:H}/Makefile.inc> 27.include <own.mk> 28.include <compiler.mk> 29 30.MAIN: all 31 32# should have been set by sys.mk 33CXX_SUFFIXES?= .cc .cpp .cxx .C 34 35.if !empty(WARNINGS_SET) || !empty(WARNINGS_SET_${MACHINE_ARCH}) 36.include <warnings.mk> 37.endif 38 39# these are applied in order, least specific to most 40VAR_QUALIFIER_LIST += \ 41 ${TARGET_SPEC_VARS:UMACHINE:@v@${$v}@} \ 42 ${COMPILER_TYPE} \ 43 ${.TARGET:T:R} \ 44 ${.TARGET:T} \ 45 ${.IMPSRC:T} \ 46 ${VAR_QUALIFIER_XTRA_LIST} 47 48QUALIFIED_VAR_LIST += \ 49 CFLAGS \ 50 COPTS \ 51 CPPFLAGS \ 52 CPUFLAGS \ 53 LDFLAGS \ 54 55# a final :U avoids errors if someone uses := 56.for V in ${QUALIFIED_VAR_LIST:O:u:@q@$q $q_LAST@} 57.for Q in ${VAR_QUALIFIER_LIST:u} 58$V += ${$V.$Q:U} ${$V.$Q.${COMPILER_TYPE}:U} 59.endfor 60.endfor 61 62CC_PG?= -pg 63CXX_PG?= ${CC_PG} 64CC_PIC?= -DPIC 65CXX_PIC?= ${CC_PIC} 66PROFFLAGS?= -DGPROF -DPROF 67 68.if ${.MAKE.LEVEL:U1} == 0 && ${BUILD_AT_LEVEL0:Uyes:tl} == "no" 69# this tells lib.mk and prog.mk to not actually build anything 70_SKIP_BUILD = not building at level 0 71.endif 72 73.if !defined(.PARSEDIR) 74# no-op is the best we can do if not bmake. 75.WAIT: 76.endif 77 78# define this once for consistency 79.if empty(_SKIP_BUILD) 80# beforebuild is a hook for things that must be done early 81all: beforebuild .WAIT realbuild 82.else 83all: .PHONY 84.warning ${_SKIP_BUILD} 85.endif 86beforebuild: 87realbuild: 88 89.endif 90