xref: /freebsd/contrib/bmake/mk/own.mk (revision 6a7405f5a6b639682cacf01e35d561411ff556aa)
1*6a7405f5SSimon J. Gerraty# $Id: own.mk,v 1.51 2024/11/12 17:40:13 sjg Exp $
23cbdda60SSimon J. Gerraty
3c59c3bf3SSimon J. Gerraty# should be set properly in sys.mk
4c59c3bf3SSimon J. Gerraty_this ?= ${.PARSEFILE:S,bsd.,,}
5c59c3bf3SSimon J. Gerraty
6c59c3bf3SSimon J. Gerraty.if !target(__${_this}__)
7c59c3bf3SSimon J. Gerraty__${_this}__: .NOTMAIN
83cbdda60SSimon J. Gerraty
93cbdda60SSimon J. Gerraty.if !target(__init.mk__)
103cbdda60SSimon J. Gerraty.include "init.mk"
113cbdda60SSimon J. Gerraty.endif
123cbdda60SSimon J. Gerraty
138695518cSSimon J. Gerraty.if !defined(NOMAKECONF) && !defined(NO_MAKECONF)
143cbdda60SSimon J. GerratyMAKECONF?=	/etc/mk.conf
153cbdda60SSimon J. Gerraty.-include "${MAKECONF}"
163cbdda60SSimon J. Gerraty.endif
173cbdda60SSimon J. Gerraty
183cbdda60SSimon J. Gerraty.include <host-target.mk>
193cbdda60SSimon J. Gerraty
203cbdda60SSimon J. GerratyTARGET_OSNAME?= ${_HOST_OSNAME}
213cbdda60SSimon J. GerratyTARGET_OSREL?= ${_HOST_OSREL}
223cbdda60SSimon J. GerratyTARGET_OSTYPE?= ${HOST_OSTYPE}
233cbdda60SSimon J. GerratyTARGET_HOST?= ${HOST_TARGET}
243cbdda60SSimon J. Gerraty
253cbdda60SSimon J. Gerraty# these may or may not exist
26e48f47ddSSimon J. Gerraty.-include <${TARGET_HOST}.mk>
27e48f47ddSSimon J. Gerraty.-include <config.mk>
283cbdda60SSimon J. Gerraty
293cbdda60SSimon J. GerratyRM?= rm
303cbdda60SSimon J. GerratyLN?= ln
313cbdda60SSimon J. GerratyINSTALL?= install
323cbdda60SSimon J. Gerraty
333cbdda60SSimon J. Gerratyprefix?=	/usr
343cbdda60SSimon J. Gerraty.if exists(${prefix}/lib)
353cbdda60SSimon J. Gerratylibprefix?=	${prefix}
363cbdda60SSimon J. Gerraty.else
373cbdda60SSimon J. Gerratylibprefix?=	/usr
383cbdda60SSimon J. Gerraty.endif
393cbdda60SSimon J. Gerraty
403cbdda60SSimon J. Gerraty# FreeBSD at least does not set this
413cbdda60SSimon J. GerratyMACHINE_ARCH?=	${MACHINE}
423cbdda60SSimon J. Gerraty# we need to make sure these are defined too in case sys.mk fails to.
433cbdda60SSimon J. Gerraty
443cbdda60SSimon J. Gerraty# for suffix rules
453cbdda60SSimon J. GerratyIMPFLAGS?=	${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}}
463cbdda60SSimon J. Gerraty.for s in .c .cc
473cbdda60SSimon J. GerratyCOMPILE.$s += ${IMPFLAGS}
483cbdda60SSimon J. GerratyLINK.$s +=  ${IMPFLAGS}
493cbdda60SSimon J. Gerraty.endfor
503cbdda60SSimon J. Gerraty
513cbdda60SSimon J. GerratyPRINT.VAR.MAKE = MAKESYSPATH=${MAKESYSPATH:U${.PARSEDIR}} ${.MAKE}
523cbdda60SSimon J. Gerraty.if empty(.MAKEFLAGS:M-V*)
533cbdda60SSimon J. Gerraty.if defined(MAKEOBJDIRPREFIX) || defined(MAKEOBJDIR)
543cbdda60SSimon J. GerratyPRINTOBJDIR=	${PRINT.VAR.MAKE} -r -V .OBJDIR -f /dev/null xxx
553cbdda60SSimon J. Gerraty.else
563cbdda60SSimon J. GerratyPRINTOBJDIR=	${PRINT.VAR.MAKE} -V .OBJDIR
573cbdda60SSimon J. Gerraty.endif
583cbdda60SSimon J. Gerraty.else
593cbdda60SSimon J. GerratyPRINTOBJDIR=	echo # prevent infinite recursion
603cbdda60SSimon J. Gerraty.endif
613cbdda60SSimon J. Gerraty
623cbdda60SSimon J. Gerraty# we really like to have SRCTOP and OBJTOP defined...
633cbdda60SSimon J. Gerraty.if !defined(SRCTOP) || !defined(OBJTOP)
64e48f47ddSSimon J. Gerraty.-include <srctop.mk>
653cbdda60SSimon J. Gerraty.endif
663cbdda60SSimon J. Gerraty
673cbdda60SSimon J. Gerraty.if !defined(SRCTOP) || !defined(OBJTOP)
683cbdda60SSimon J. Gerraty# dpadd.mk is rather pointless without these
693cbdda60SSimon J. GerratyOPTIONS_DEFAULT_NO+= DPADD_MK
703cbdda60SSimon J. Gerraty.endif
713cbdda60SSimon J. Gerraty
723cbdda60SSimon J. Gerraty# process options
733cbdda60SSimon J. GerratyOPTIONS_DEFAULT_NO+= \
74*6a7405f5SSimon J. Gerraty	DEBUG \
753cbdda60SSimon J. Gerraty	INSTALL_AS_USER \
7651ee2c1cSSimon J. Gerraty	GPROF \
77494f7191SSimon J. Gerraty	PROG_LDORDER_MK \
783cbdda60SSimon J. Gerraty	LIBTOOL \
793cbdda60SSimon J. Gerraty	LINT \
803cbdda60SSimon J. Gerraty
813cbdda60SSimon J. GerratyOPTIONS_DEFAULT_YES+= \
823cbdda60SSimon J. Gerraty	ARCHIVE \
833cbdda60SSimon J. Gerraty	AUTODEP \
843cbdda60SSimon J. Gerraty	CRYPTO \
853cbdda60SSimon J. Gerraty	DOC \
863cbdda60SSimon J. Gerraty	DPADD_MK \
873cbdda60SSimon J. Gerraty	GDB \
883cbdda60SSimon J. Gerraty	KERBEROS \
893cbdda60SSimon J. Gerraty	LINKLIB \
903cbdda60SSimon J. Gerraty	MAN \
913cbdda60SSimon J. Gerraty	NLS \
923cbdda60SSimon J. Gerraty	OBJ \
933cbdda60SSimon J. Gerraty	PIC \
943cbdda60SSimon J. Gerraty	SHARE \
953cbdda60SSimon J. Gerraty	SKEY \
963cbdda60SSimon J. Gerraty	YP \
973cbdda60SSimon J. Gerraty
983cbdda60SSimon J. GerratyOPTIONS_DEFAULT_DEPENDENT+= \
993cbdda60SSimon J. Gerraty	CATPAGES/MAN \
100*6a7405f5SSimon J. Gerraty	DEBUG_RUST/DEBUG \
101494f7191SSimon J. Gerraty	LDORDER_MK/PROG_LDORDER_MK \
1023cbdda60SSimon J. Gerraty	OBJDIRS/OBJ \
1033cbdda60SSimon J. Gerraty	PICINSTALL/LINKLIB \
1043cbdda60SSimon J. Gerraty	PICLIB/PIC \
1053cbdda60SSimon J. Gerraty	PROFILE/LINKLIB \
106d5e0a182SSimon J. Gerraty	STAGING_MAN/STAGING \
107cac6fd11SSimon J. Gerraty	STAGING_PROG/STAGING \
108*6a7405f5SSimon J. Gerraty	STAGING_RUST/STAGING_PROG \
1093cbdda60SSimon J. Gerraty
1103cbdda60SSimon J. Gerraty.include <options.mk>
1113cbdda60SSimon J. Gerraty
1123cbdda60SSimon J. Gerraty.if ${MK_INSTALL_AS_USER} == "yes"
1133cbdda60SSimon J. Gerraty# We ignore this if user is root.
11406b9b3e0SSimon J. Gerraty_uid:= ${.MAKE.UID:U${id -u:L:sh}}
1153cbdda60SSimon J. Gerraty.if ${_uid} != 0
1163cbdda60SSimon J. Gerraty.if !defined(USERGRP)
11706b9b3e0SSimon J. GerratyUSERGRP:=  ${.MAKE.GID:U${id -g:L:sh}}
1183cbdda60SSimon J. Gerraty.export USERGRP
1193cbdda60SSimon J. Gerraty.endif
1208695518cSSimon J. Gerraty.for x in BIN CONF DOC INC INFO FILES KMOD LIB MAN NLS PROG SHARE
1213cbdda60SSimon J. Gerraty$xOWN=  ${USER}
1223cbdda60SSimon J. Gerraty$xGRP=  ${USERGRP}
1234c620fe5SSimon J. Gerraty$x_INSTALL_OWN=
1243cbdda60SSimon J. Gerraty.endfor
1253cbdda60SSimon J. Gerraty.endif
1263cbdda60SSimon J. Gerraty.endif
1273cbdda60SSimon J. Gerraty
1283cbdda60SSimon J. Gerraty# override this in sys.mk
1293cbdda60SSimon J. GerratyROOT_GROUP?=	wheel
1303cbdda60SSimon J. GerratyBINGRP?=	${ROOT_GROUP}
1313cbdda60SSimon J. GerratyBINOWN?=	root
1323cbdda60SSimon J. GerratyBINMODE?=	555
1333cbdda60SSimon J. GerratyNONBINMODE?=	444
1344c620fe5SSimon J. GerratyDIRMODE?=	755
1353cbdda60SSimon J. Gerraty
136cac6fd11SSimon J. GerratyINCLUDEDIR?=	${prefix}/include
137cac6fd11SSimon J. GerratyINCDIR?=	${INCLUDEDIR}
138cac6fd11SSimon J. Gerraty
1393cbdda60SSimon J. Gerraty# Define MANZ to have the man pages compressed (gzip)
1403cbdda60SSimon J. Gerraty#MANZ=		1
1413cbdda60SSimon J. Gerraty
142548bfc56SSimon J. GerratyMANDIR?=	${prefix}/share/man
1433cbdda60SSimon J. GerratyMANGRP?=	${BINGRP}
1443cbdda60SSimon J. GerratyMANOWN?=	${BINOWN}
1453cbdda60SSimon J. GerratyMANMODE?=	${NONBINMODE}
1463cbdda60SSimon J. Gerraty
147e48f47ddSSimon J. GerratyINCLUDEDIR?=	${libprefix}/include
1483cbdda60SSimon J. GerratyLIBDIR?=	${libprefix}/lib
1493cbdda60SSimon J. GerratySHLIBDIR?=	${libprefix}/lib
1503cbdda60SSimon J. Gerraty.if ${USE_SHLIBDIR:Uno} == "yes"
1513cbdda60SSimon J. Gerraty_LIBSODIR?=	${SHLIBDIR}
1523cbdda60SSimon J. Gerraty.else
1533cbdda60SSimon J. Gerraty_LIBSODIR?=	${LIBDIR}
1543cbdda60SSimon J. Gerraty.endif
1553cbdda60SSimon J. Gerraty# this is where ld.*so lives
1563cbdda60SSimon J. GerratySHLINKDIR?=	/usr/libexec
1573cbdda60SSimon J. GerratyLINTLIBDIR?=	${libprefix}/libdata/lint
1583cbdda60SSimon J. GerratyLIBGRP?=	${BINGRP}
1593cbdda60SSimon J. GerratyLIBOWN?=	${BINOWN}
1603cbdda60SSimon J. GerratyLIBMODE?=	${NONBINMODE}
1613cbdda60SSimon J. Gerraty
1623cbdda60SSimon J. GerratyDOCDIR?=        ${prefix}/share/doc
1633cbdda60SSimon J. GerratyDOCGRP?=	${BINGRP}
1643cbdda60SSimon J. GerratyDOCOWN?=	${BINOWN}
1653cbdda60SSimon J. GerratyDOCMODE?=       ${NONBINMODE}
1663cbdda60SSimon J. Gerraty
1673cbdda60SSimon J. GerratyNLSDIR?=	${prefix}/share/nls
1683cbdda60SSimon J. GerratyNLSGRP?=	${BINGRP}
1693cbdda60SSimon J. GerratyNLSOWN?=	${BINOWN}
1703cbdda60SSimon J. GerratyNLSMODE?=	${NONBINMODE}
1713cbdda60SSimon J. Gerraty
1723cbdda60SSimon J. GerratyKMODDIR?=	${prefix}/lkm
1733cbdda60SSimon J. GerratyKMODGRP?=	${BINGRP}
1743cbdda60SSimon J. GerratyKMODOWN?=	${BINOWN}
1753cbdda60SSimon J. GerratyKMODMODE?=	${NONBINMODE}
1763cbdda60SSimon J. Gerraty
177cac6fd11SSimon J. GerratySHAREGRP?=	${BINGRP}
178cac6fd11SSimon J. GerratySHAREOWN?=	${BINOWN}
179cac6fd11SSimon J. GerratySHAREMODE?=	${NONBINMODE}
180cac6fd11SSimon J. Gerraty
1813cbdda60SSimon J. GerratyCOPY?=		-c
1823cbdda60SSimon J. GerratySTRIP_FLAG?=	-s
1833cbdda60SSimon J. Gerraty
1843cbdda60SSimon J. Gerraty.if ${TARGET_OSNAME} == "NetBSD"
1853cbdda60SSimon J. Gerraty.if exists(/usr/libexec/ld.elf_so)
1863cbdda60SSimon J. GerratyOBJECT_FMT=ELF
1873cbdda60SSimon J. Gerraty.endif
1883cbdda60SSimon J. GerratyOBJECT_FMT?=a.out
1893cbdda60SSimon J. Gerraty.endif
1903cbdda60SSimon J. Gerraty# sys.mk should set something appropriate if need be.
1913cbdda60SSimon J. GerratyOBJECT_FMT?=ELF
1923cbdda60SSimon J. Gerraty
1933cbdda60SSimon J. Gerraty.if (${_HOST_OSNAME} == "FreeBSD")
1943cbdda60SSimon J. GerratyCFLAGS+= ${CPPFLAGS}
1953cbdda60SSimon J. Gerraty.endif
1963cbdda60SSimon J. Gerraty
1973cbdda60SSimon J. Gerraty# allow for per target flags
1983cbdda60SSimon J. Gerraty# apply the :T:R first, so the more specific :T can override if needed
1993cbdda60SSimon J. GerratyCPPFLAGS += ${CPPFLAGS_${.TARGET:T:R}} ${CPPFLAGS_${.TARGET:T}}
2003cbdda60SSimon J. GerratyCFLAGS += ${CFLAGS_${.TARGET:T:R}} ${CFLAGS_${.TARGET:T}}
2013cbdda60SSimon J. Gerraty
2023cbdda60SSimon J. Gerraty# Define SYS_INCLUDE to indicate whether you want symbolic links to the system
2033cbdda60SSimon J. Gerraty# source (``symlinks''), or a separate copy (``copies''); (latter useful
2043cbdda60SSimon J. Gerraty# in environments where it's not possible to keep /sys publicly readable)
2053cbdda60SSimon J. Gerraty#SYS_INCLUDE= 	symlinks
2063cbdda60SSimon J. Gerraty
2073cbdda60SSimon J. Gerraty# don't try to generate PIC versions of libraries on machines
2083cbdda60SSimon J. Gerraty# which don't support PIC.
2093cbdda60SSimon J. Gerraty.if  (${MACHINE_ARCH} == "vax") || \
2103cbdda60SSimon J. Gerraty    ((${MACHINE_ARCH} == "mips") && defined(STATIC_TOOLCHAIN)) || \
2113cbdda60SSimon J. Gerraty    ((${MACHINE_ARCH} == "alpha") && defined(ECOFF_TOOLCHAIN))
2123cbdda60SSimon J. GerratyMK_PIC=no
2133cbdda60SSimon J. Gerraty.endif
2143cbdda60SSimon J. Gerraty
2153cbdda60SSimon J. Gerraty# No lint, for now.
2163cbdda60SSimon J. GerratyNOLINT=
2173cbdda60SSimon J. Gerraty
2183cbdda60SSimon J. Gerraty
2193cbdda60SSimon J. Gerraty.if ${MK_LINKLIB} == "no"
2203cbdda60SSimon J. GerratyMK_PICINSTALL=	no
2213cbdda60SSimon J. GerratyMK_PROFILE=	no
2223cbdda60SSimon J. Gerraty.endif
2233cbdda60SSimon J. Gerraty
2243cbdda60SSimon J. Gerraty.if ${MK_MAN} == "no"
2253cbdda60SSimon J. GerratyMK_CATPAGES=	no
2263cbdda60SSimon J. Gerraty.endif
2273cbdda60SSimon J. Gerraty
2283cbdda60SSimon J. Gerraty.if ${MK_OBJ} == "no"
2293cbdda60SSimon J. GerratyMK_OBJDIRS=	no
2303cbdda60SSimon J. GerratyMK_AUTO_OBJ=	no
2313cbdda60SSimon J. Gerraty.endif
2323cbdda60SSimon J. Gerraty
2333cbdda60SSimon J. Gerraty.if ${MK_SHARE} == "no"
2343cbdda60SSimon J. GerratyMK_CATPAGES=	no
2353cbdda60SSimon J. GerratyMK_DOC=		no
2363cbdda60SSimon J. GerratyMK_INFO=	no
2373cbdda60SSimon J. GerratyMK_MAN=		no
2383cbdda60SSimon J. GerratyMK_NLS=		no
2393cbdda60SSimon J. Gerraty.endif
2403cbdda60SSimon J. Gerraty
241cac6fd11SSimon J. Gerraty# :U incase not using our sys.mk
242cac6fd11SSimon J. Gerraty.if ${MK_META_MODE:Uno} == "yes"
243cac6fd11SSimon J. Gerraty# should all be set by sys.mk if not default
244cac6fd11SSimon J. GerratyTARGET_SPEC_VARS ?= MACHINE
24512904384SSimon J. Gerraty.if ${MAKE_VERSION} >= 20120325
246cac6fd11SSimon J. Gerraty.if ${TARGET_SPEC_VARS:[#]} > 1
247cac6fd11SSimon J. GerratyTARGET_SPEC_VARS_REV := ${TARGET_SPEC_VARS:[-1..1]}
248cac6fd11SSimon J. Gerraty.else
249cac6fd11SSimon J. GerratyTARGET_SPEC_VARS_REV = ${TARGET_SPEC_VARS}
250cac6fd11SSimon J. Gerraty.endif
25112904384SSimon J. Gerraty.endif
252cac6fd11SSimon J. Gerraty.if ${MK_STAGING} == "yes"
253cac6fd11SSimon J. GerratySTAGE_ROOT?= ${OBJROOT}/stage
254*6a7405f5SSimon J. GerratySTAGE_OBJTOP?= ${STAGE_ROOT}/${TARGET_SPEC_VARS_REV:@v@${$v}@:ts/}
255cac6fd11SSimon J. Gerraty.endif
256cac6fd11SSimon J. Gerraty.endif
257cac6fd11SSimon J. Gerraty
2583cbdda60SSimon J. Gerraty.endif
259