1# $Id: init.mk,v 1.21 2020/08/19 17:51:53 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# targets that are ok at level 0 69LEVEL0_TARGETS += clean* destory* 70M_ListToSkip= O:u:S,^,N,:ts: 71 72.if ${.MAKE.LEVEL:U1} == 0 && ${MK_DIRDEPS_BUILD:Uno} == "yes" && ${.TARGETS:Uall:${LEVEL0_TARGETS:${M_ListToSkip}}} != "" 73# this tells lib.mk and prog.mk to not actually build anything 74_SKIP_BUILD = not building at level 0 75.endif 76 77.if !defined(.PARSEDIR) 78# no-op is the best we can do if not bmake. 79.WAIT: 80.endif 81 82# define this once for consistency 83.if empty(_SKIP_BUILD) 84# beforebuild is a hook for things that must be done early 85all: beforebuild .WAIT realbuild 86.else 87all: .PHONY 88.warning ${_SKIP_BUILD} 89.endif 90beforebuild: 91realbuild: 92 93.endif 94