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