2020-05-17 Simon J Gerraty <sjg@beast.crufty.net> * VERSION (_MAKE_VERSION): 20200517 Merge with NetBSD make, pick up o modified dollar tests to avoid shell dependencies o new tests for .INCLUDEFROM 2020-05-16 Simon J Gerraty <sjg@beast.crufty.net> * unit-tests/dollar.mk: tweak '1 dollar literal' test to not depend so much on shell behavior 2020-05-10 Simon J Gerraty <sjg@beast.crufty.net> * VERSION (_MAKE_VERSION): 20200510 Merge with NetBSD make, pick up o unit test for dollar handling 2020-05-06 Simon J Gerraty <sjg@beast.crufty.net> * VERSION (_MAKE_VERSION): 20200506 Merge with NetBSD make, pick up o str.c: empty string does not match % pattern plus unit-test changes 2020-05-04 Simon J Gerraty <sjg@beast.crufty.net> * VERSION (_MAKE_VERSION): 20200504 May the 4th be with you Merge with NetBSD make, pick up o var.c: import handling of old sysV style modifier using '%' o str.c: refactor brk_string o unit-tests: add test case for lazy conditions 2020-04-18 Simon J Gerraty <sjg@beast.crufty.net> * VERSION (_MAKE_VERSION): 20200418 * configure.in: use_makefile=no for cygwin et al. case insensitive filesystems just don't work if both makefile and Makefile exist. NOTE: bmake does not support cygwin and likely never will, but if brave souls want to try it - help them out. 2020-04-02 Simon J Gerraty <sjg@beast.crufty.net> * VERSION (_MAKE_VERSION): 20200402 Merge with NetBSD make, pick up o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD a blank command is perfectly valid. 2020-03-30 Simon J Gerraty <sjg@beast.crufty.net> * VERSION (_MAKE_VERSION): 20200330 Merge with NetBSD make, pick up o make.h: extern debug_file 2020-03-18 Simon J Gerraty <sjg@beast.crufty.net> * VERSION (_MAKE_VERSION): 20200318 Merge with NetBSD make, pick up o meta.c: meta_oodate, check for corrupted meta file earlier and more often. 2020-02-20 Simon J Gerraty <sjg@beast.crufty.net> * VERSION (_MAKE_VERSION): 20200220 2020-02-19 Simon J Gerraty <sjg@beast.crufty.net> * boot-strap: unset MAKEFLAGS 2020-02-12 Simon J Gerraty <sjg@beast.crufty.net> * VERSION (_MAKE_VERSION): 20200212 * meta.c: meta_compat_parent check for USE_FILEMON patch from Soeren Tempel 2020-02-05 Simon J Gerraty <sjg@beast.crufty.net> * VERSION: 20200205 Merge with NetBSD make, pick up o meta.c: fix compat mode, need to call meta_job_output() o job.c: extra fds for meta mode not needed if using filemon_dev 2020-01-22 Simon J Gerraty <sjg@beast.crufty.net> * VERSION: 20200122 Merge with NetBSD make, pick up o meta.c: avoid passing NULL to filemon_*() when meta_needed() returns FALSE. 2020-01-21 Simon J Gerraty <sjg@beast.crufty.net> * VERSION: 20200121 Merge with NetBSD make, pick up o filemon/filemon_{dev,ktrace}.c: allow selection of filemon implementation. filemon_dev.c uses the kernel module while filemon_ktrace.c leverages the fktrace api available in NetBSD. filemon_ktrace.c can hopefully form the basis for adding support for other tracing mechanisms such as strace on Linux. o meta.c: when target is out-of-date per normal make rules record value of .OODATE in meta file. 2019-09-26 Simon J Gerraty <sjg@beast.crufty.net> * VERSION: 20190926 Merge with NetBSD make, pick up o parse.c: don't pass NULL to realpath(3) some versions cannot handle it. 2019-04-09 Simon J Gerraty <sjg@beast.crufty.net> * VERSION: 20190409 Merge with NetBSD make, pick up o parse.c: ParseDoDependency: free paths rather than assert 2018-12-22 Simon J Gerraty <sjg@beast.crufty.net> * VERSION: 20181222 * configure.in: add --without-makefile to avoid generating makefile and make-bootstrap.sh * include Makefile.inc if it exists * Use Makefile and Makefile.config.in in unit-tests so we can use just: make obj && make && make test when bmake is already available. We add --without-makefile to CONFIGURE_ARGS in this case. * tweak bsd.after-import.mk (captures Makefile.config etc after import to FreeBSD for example) to cope with all the above. 2018-12-21 Simon J Gerraty <sjg@beast.crufty.net> * VERSION: 20181221 Merge with NetBSD make, pick up o parse.c: ParseVErrorInternal use .PARSEDIR and apply if relative, and then use .PARSEFILE for consistent result. 2018-12-20 Simon J Gerraty <sjg@beast.crufty.net> * VERSION: 20181220 Merge with NetBSD make, pick up o parse.c: ParseVErrorInternal use .CURDIR if .PARSEDIR is relative o var.c: avoid SEGFAULT in .unexport-env when MAKELEVEL is not set 2018-12-16 Simon J Gerraty <sjg@beast.crufty.net> * VERSION: 20181216 Merge with NetBSD make, pick up o fix for unit-tests/varquote.mk on Debian 2018-09-21 Simon J. Gerraty <sjg@bad.crufty.net> * VERSION: 20180919 Merge with NetBSD make, pick up o var.c: add :q o dir.c: cleanup caching of stats 2018-09-21 Simon J Gerraty <sjg@beast.crufty.net> * Makefile.config.in: use += where it makes sense. 2018-05-12 Simon J. Gerraty <sjg@bad.crufty.net> * VERSION: 20180512 Merge with NetBSD make, pick up o job.c: skip polling job token pipe 2018-04-05 Simon J. Gerraty <sjg@bad.crufty.net> * VERSION: 20180405 Merge with NetBSD make, pick up o parse.c: be more cautious about detecting depenency line rather than sysV style include. 2018-02-22 Simon J. Gerraty <sjg@bad.crufty.net> * VERSION: 20180222 Merge with NetBSD make, pick up o parse.c: avoid calling sysconf for every call to loadfile 2018-02-18 Simon J. Gerraty <sjg@bad.crufty.net> * VERSION: 20180218 Merge with NetBSD make, pick up o var.c: Var_Set handle NULL value anytime. 2018-02-12 Simon J. Gerraty <sjg@bad.crufty.net> * VERSION: 20180212 Merge with NetBSD make, pick up o parse.c: do not treat .info as warning with -W 2017-12-07 Simon J. Gerraty <sjg@bad.crufty.net> * VERSION: 20171207 Merge with NetBSD make, pick up o var.c: Var_Append use Var_Set if var not previously set so that VAR_CMD is handled correctly. Add a suitable unit-test. 2017-11-26 Simon J. Gerraty <sjg@bad.crufty.net> * VERSION (_MAKE_VERSION): 20171126 * aclocal.m4: use AC_LINK_IFELSE for AC_C___ATTRIBUTE__ since AC_TRY_COMPILE puts input inside main() which upsets modern compilers. 2017-11-18 Simon J. Gerraty <sjg@bad.crufty.net> * VERSION: 20171118 Merge with NetBSD make, pick up o var.c: do not append to variable set on command line add unit-test to catch this. 2017-10-28 Simon J. Gerraty <sjg@bad.crufty.net> * VERSION: 20171028 Merge with NetBSD make, pick up o main.c: ignore empty MAKEOBJDIR * Makefile.config.in: make @prefix@ @machine*@ and @default_sys_path@ defaults. 2017-10-05 Simon J. Gerraty <sjg@bad.crufty.net> * VERSION: 20171005 * unit-tests/dotwait.mk: redirect stderr through pipe for more consistent result on some platforms. 2017-08-13 Simon J. Gerraty <sjg@bad.crufty.net> * machine.sh: entry for AIX 2017-08-12 Simon J. Gerraty <sjg@bad.crufty.net> * VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION to a file that can be included by configure as well as make. This allows configure to set set _MAKE_VERSION in make-bootstrap.sh 2017-08-10 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170810 Merge with NetBSD make, pick up o meta.c: if target is in subdir we only need subdir name in meta_name. 2017-07-20 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170720 Merge with NetBSD make, pick up o compat.c: pass SIGINT etc onto child and wait for it to exit before we self-terminate. 2017-07-11 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170711 forgot to update after merge on 20170708 ;-) o main.c: refactor to reduce size of main function. add -v option to always fully expand values. o meta.c: ensure command output in meta file has ending newline even when filemon not being used. When matching ${.MAKE.META.IGNORE_PATTERNS} do not use pathname via ':L' since any ':' in pathname breaks that. Instead set a '${.p.}' to pathname in the target context and use that. 2017-05-10 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170510 Merge with NetBSD make, pick up o main.c: Main_SetObjdir: ensure buf2 is in scope 2017-05-08 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170505 see mk/ChangeLog 2017-05-05 Simon J. Gerraty <sjg@bad.crufty.net> * parse.c: not everyone has stdint.h 2017-05-01 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170501 see mk/ChangeLog 2017-04-21 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170421 Merge with NetBSD make, pick up o str.c: Str_Match: fix closure tests for [^] and add unit-test. 2017-04-20 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170420 Merge with NetBSD make, pick up o main.c: only use -C arg "as is" if it contains no relative component. 2017-04-18 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170418 Merge with NetBSD make, pick up o main.c: fix Main_SetObjdir() for relative paths (eg obj). 2017-04-17 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170417 Merge with NetBSD make, pick up o fixes a number of coverity complaints - check return value of fseek, fcntl - plug memory leak in Dir_FindFile, Var_LoopExpand, JobPrintCommand, ParseTraditionalInclude - use bmake_malloc() where NULL is not tollerated - use MAKE_ATTR_UNUSED rather that kludges like return(unused ? 0 : 0) - use purge_cached_realpaths() rather than abuse cached_realpath() 2017-04-13 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170413 Merge with NetBSD make, pick up o main.c: when setting .OBJDIR ignore '$' in paths. * job.c: use MALLOC_OPTIONS to set malloc_options. 2017-04-11 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170411 Merge with NetBSD make, pick up o str.c: Str_Match: allow [^a-z] to behave as expected. 2017-03-26 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170326 Merge with NetBSD make, pick up o main.c: purge relative paths from realpath cache when .OBJDIR is changed. 2017-03-11 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170311 Merge with NetBSD make, pick up o main.c: only use -C arg "as is" if it starts with '/'. 2017-03-01 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170301 Merge with NetBSD make, pick up o main.c: use -C arg "as is" rather than getcwd() if they identify the same directory. o parse.c: ensure loadfile buffer is \n terminated in non-mmap case 2017-02-01 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170201 Merge with NetBSD make, pick up o var.c: allow :_=var and avoid use of special context. 2017-01-30 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170130 Merge with NetBSD make, pick up o var.c: add :range and :_ o main.c: partially initialize Dir_* before MainParseArgs() can be called. If -V, skip Main_ExportMAKEFLAGS() 2017-01-14 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20170114 Merge with NetBSD make, pick up o var.c: allow specifying the utc value used by :{gm,local}time 2016-12-12 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20161212 Merge with NetBSD make, pick up o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too. 2016-12-09 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20161209 Merge with NetBSD make, pick up o main.c: cleanup setting of .OBJDIR o parse.c: avoid coredump from (var)=val 2016-11-26 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20161126 Merge with NetBSD make, pick up o make.c: Make_OODate: report src node name if path not set 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160926 Merge with NetBSD make, pick up o support for .DELETE_ON_ERROR: (remove targets that fail) 2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile MAN: tweak .Dt to match ${PROG} 2016-08-18 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160818 its a neater number; pick up whitespace fixes to man page. 2016-08-17 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160817 Merge with NetBSD make, pick up o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore() so we can call it before adding entries to missingFiles. Thus we do not track files we have been told to ignore. 2016-08-15 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160815 Merge with NetBSD make, pick up o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to pathnames, and skip if the expansion is empty. Useful for dirdeps.mk when checking DIRDEPS_CACHE. 2016-08-12 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160812 Merge with NetBSD make, pick up o meta.c: remove all missingFiles entries that match a deleted dir. o main.c: set .ERROR_CMD if possible. 2016-06-06 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160606 Merge with NetBSD make, pick up o dir.c: extend mtimes cache to others via cached_stat() 2016-06-04 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160604 Merge with NetBSD make, pick up o meta.c: missing filemon data is only relevant if we read a meta file. Also do not return oodate for a missing metafile if gn->path points to .CURDIR 2016-06-02 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160602 Merge with NetBSD make, pick up o cached_realpath(): avoid hitting filesystem more than necessary. o meta.c: refactor need_meta decision, add knobs for missing meta file and filemon data wrt out-of-datedness. 2016-05-28 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160528 * boot-strap, make-bootstrap.sh.in: Makefile now uses _MAKE_VERSION 2016-05-12 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160512 Merge with NetBSD make, pick up o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS this is useful for gcov builds. o propagate errors from filemon(4). 2016-05-09 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160509 Merge with NetBSD make, pick up o remove use of non-standard types u_int etc. o meta.c: apply realpath() before matching against metaIgnorePaths 2016-04-04 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160404 Merge with NetBSD make, pick up o allow makefile to set .MAKE.JOBS * Makefile (PROG_NAME): use ${_MAKE_VERSION} 2016-03-15 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): 20160315 Merge with NetBSD make, pick up o fix handling of archive members 2016-03-13 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (_MAKE_VERSION): rename variable to avoid interference with checks for ${MAKE_VERSION} 2016-03-10 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20160310 Merge with NetBSD make, pick up o meta.c: treat missing Read file same as Write, incase we Delete it. 2016-03-07 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20160307 Merge with NetBSD make, pick up o var.c: fix :ts\nnn to be octal by default. o meta.c: meta_finish() to cleanup memory. 2016-02-26 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20160226 Merge with NetBSD make, pick up o meta.c: allow meta file for makeDepend if makefiles want it. 2016-02-19 Simon J. Gerraty <sjg@bad.crufty.net> * var.c: default .MAKE.SAVE_DOLLARS to FALSE for backwards compatability. * Makefile (MAKE_VERSION): 20160220 Merge with NetBSD make, pick up o var.c: add knob to control handling of '$$' in := 2016-02-18 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20160218 Merge with NetBSD make, pick up o var.c: add .export-literal allows us to fix sys.clean-env.mk post the changes to Var_Subst. Var_Subst now takes flags, and does not consume '$$' in := 2016-02-17 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20160217 Merge with NetBSD make, pick up o var.c: preserve '$$' in := o parse.c: add .dinclude for handling included makefile like .depend 2015-12-20 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20151220 Merge with NetBSD make, pick up o suff.c: re-initialize suffNull when clearing suffixes. 2015-12-01 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20151201 Merge with NetBSD make, pick up o cond.c: CondCvtArg: avoid access beyond end of empty buffer. o meta.c: meta_oodate: use lstat(2) for checking link target in case it is a symlink. o var.c: avoid calling brk_string and Var_Export1 with empty strings. 2015-11-26 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20151126 Merge with NetBSD make, pick up o parse.c: ParseTrackInput don't access beyond end of old value. 2015-10-22 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20151022 * Add support for BSD/OS which lacks inttypes.h and really needs sys/param.h for sys/sysctl.h also 'type' is not a shell builtin. * var.c: eliminate uint32_t and need for inttypes.h * main.c: PrintOnError flush stdout before run .ERROR * parse.c: cope with _SC_PAGESIZE not being defined. 2015-10-20 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20151020 Merge with NetBSD make, pick up o var.c: fix uninitialized var 2015-10-12 Simon J. Gerraty <sjg@bad.crufty.net> * var.c: the conditional expressions used with ':?' can be expensive, if already discarding do not evaluate or expand anything. 2015-10-10 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20151010 Merge with NetBSD make, pick up o Add Boolean wantit flag to Var_Subst and Var_Parse when FALSE we know we are discarding the result and can skip operations like Cmd_Exec. 2015-10-09 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20151009 Merge with NetBSD make, pick up o var.c: don't check for NULL before free() o meta.c: meta_oodate, do not hard code ignore of makeDependfile 2015-09-10 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20150910 Merge with NetBSD make, pick up o main.c: with -w print Enter/Leaving messages for objdir too if necessary. o centralize shell metachar handling * FILES: add metachar.[ch] 2015-06-06 Simon J. Gerraty <sjg@bad.crufty.net> * Makefile (MAKE_VERSION): 20150606 Merge with NetBSD make, pick up o make.1: document .OBJDIR target
271 lines
5.8 KiB
Makefile
271 lines
5.8 KiB
Makefile
# $Id: own.mk,v 1.2 2020/05/24 11:09:44 nia Exp $
|
|
|
|
.if !target(__${.PARSEFILE}__)
|
|
__${.PARSEFILE}__:
|
|
|
|
.if !target(__init.mk__)
|
|
.include "init.mk"
|
|
.endif
|
|
|
|
.if !defined(NOMAKECONF) && !defined(NO_MAKECONF)
|
|
MAKECONF?= /etc/mk.conf
|
|
.-include "${MAKECONF}"
|
|
.endif
|
|
|
|
.include <host-target.mk>
|
|
|
|
TARGET_OSNAME?= ${_HOST_OSNAME}
|
|
TARGET_OSREL?= ${_HOST_OSREL}
|
|
TARGET_OSTYPE?= ${HOST_OSTYPE}
|
|
TARGET_HOST?= ${HOST_TARGET}
|
|
|
|
# these may or may not exist
|
|
.-include <${TARGET_HOST}.mk>
|
|
.-include <config.mk>
|
|
|
|
RM?= rm
|
|
LN?= ln
|
|
INSTALL?= install
|
|
|
|
prefix?= /usr
|
|
.if exists(${prefix}/lib)
|
|
libprefix?= ${prefix}
|
|
.else
|
|
libprefix?= /usr
|
|
.endif
|
|
|
|
# FreeBSD at least does not set this
|
|
MACHINE_ARCH?= ${MACHINE}
|
|
# we need to make sure these are defined too in case sys.mk fails to.
|
|
COMPILE.s?= ${CC} ${AFLAGS} -c
|
|
LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS}
|
|
COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp
|
|
LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS}
|
|
COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c
|
|
LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}
|
|
CXXFLAGS?= ${CFLAGS}
|
|
COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c
|
|
LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS}
|
|
COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c
|
|
LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS}
|
|
COMPILE.f?= ${FC} ${FFLAGS} -c
|
|
LINK.f?= ${FC} ${FFLAGS} ${LDFLAGS}
|
|
COMPILE.F?= ${FC} ${FFLAGS} ${CPPFLAGS} -c
|
|
LINK.F?= ${FC} ${FFLAGS} ${CPPFLAGS} ${LDFLAGS}
|
|
COMPILE.r?= ${FC} ${FFLAGS} ${RFLAGS} -c
|
|
LINK.r?= ${FC} ${FFLAGS} ${RFLAGS} ${LDFLAGS}
|
|
LEX.l?= ${LEX} ${LFLAGS}
|
|
COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c
|
|
LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS}
|
|
YACC.y?= ${YACC} ${YFLAGS}
|
|
|
|
# for suffix rules
|
|
IMPFLAGS?= ${COPTS.${.IMPSRC:T}} ${CPUFLAGS.${.IMPSRC:T}} ${CPPFLAGS.${.IMPSRC:T}}
|
|
.for s in .c .cc
|
|
COMPILE.$s += ${IMPFLAGS}
|
|
LINK.$s += ${IMPFLAGS}
|
|
.endfor
|
|
|
|
PRINT.VAR.MAKE = MAKESYSPATH=${MAKESYSPATH:U${.PARSEDIR}} ${.MAKE}
|
|
.if empty(.MAKEFLAGS:M-V*)
|
|
.if defined(MAKEOBJDIRPREFIX) || defined(MAKEOBJDIR)
|
|
PRINTOBJDIR= ${PRINT.VAR.MAKE} -r -V .OBJDIR -f /dev/null xxx
|
|
.else
|
|
PRINTOBJDIR= ${PRINT.VAR.MAKE} -V .OBJDIR
|
|
.endif
|
|
.else
|
|
PRINTOBJDIR= echo # prevent infinite recursion
|
|
.endif
|
|
|
|
# we really like to have SRCTOP and OBJTOP defined...
|
|
.if !defined(SRCTOP) || !defined(OBJTOP)
|
|
.-include <srctop.mk>
|
|
.endif
|
|
|
|
.if !defined(SRCTOP) || !defined(OBJTOP)
|
|
# dpadd.mk is rather pointless without these
|
|
OPTIONS_DEFAULT_NO+= DPADD_MK
|
|
.endif
|
|
|
|
# process options
|
|
OPTIONS_DEFAULT_NO+= \
|
|
INSTALL_AS_USER \
|
|
GPROF \
|
|
PROG_LDORDER_MK \
|
|
LIBTOOL \
|
|
LINT \
|
|
|
|
OPTIONS_DEFAULT_YES+= \
|
|
ARCHIVE \
|
|
AUTODEP \
|
|
CRYPTO \
|
|
DOC \
|
|
DPADD_MK \
|
|
GDB \
|
|
KERBEROS \
|
|
LINKLIB \
|
|
MAN \
|
|
NLS \
|
|
OBJ \
|
|
PIC \
|
|
SHARE \
|
|
SKEY \
|
|
YP \
|
|
|
|
OPTIONS_DEFAULT_DEPENDENT+= \
|
|
CATPAGES/MAN \
|
|
LDORDER_MK/PROG_LDORDER_MK \
|
|
OBJDIRS/OBJ \
|
|
PICINSTALL/LINKLIB \
|
|
PICLIB/PIC \
|
|
PROFILE/LINKLIB \
|
|
STAGING_PROG/STAGING \
|
|
|
|
.include <options.mk>
|
|
|
|
.if ${MK_INSTALL_AS_USER} == "yes"
|
|
# We ignore this if user is root.
|
|
_uid!= id -u
|
|
.if ${_uid} != 0
|
|
.if !defined(USERGRP)
|
|
USERGRP!= id -g
|
|
.export USERGRP
|
|
.endif
|
|
.for x in BIN CONF DOC INC INFO FILES KMOD LIB MAN NLS PROG SHARE
|
|
$xOWN= ${USER}
|
|
$xGRP= ${USERGRP}
|
|
$x_INSTALL_OWN=
|
|
.endfor
|
|
.endif
|
|
.endif
|
|
|
|
# override this in sys.mk
|
|
ROOT_GROUP?= wheel
|
|
BINGRP?= ${ROOT_GROUP}
|
|
BINOWN?= root
|
|
BINMODE?= 555
|
|
NONBINMODE?= 444
|
|
DIRMODE?= 755
|
|
|
|
INCLUDEDIR?= ${prefix}/include
|
|
INCDIR?= ${INCLUDEDIR}
|
|
|
|
# Define MANZ to have the man pages compressed (gzip)
|
|
#MANZ= 1
|
|
|
|
MANTARGET?= cat
|
|
MANDIR?= ${prefix}/share/man/${MANTARGET}
|
|
MANGRP?= ${BINGRP}
|
|
MANOWN?= ${BINOWN}
|
|
MANMODE?= ${NONBINMODE}
|
|
|
|
INCLUDEDIR?= ${libprefix}/include
|
|
LIBDIR?= ${libprefix}/lib
|
|
SHLIBDIR?= ${libprefix}/lib
|
|
.if ${USE_SHLIBDIR:Uno} == "yes"
|
|
_LIBSODIR?= ${SHLIBDIR}
|
|
.else
|
|
_LIBSODIR?= ${LIBDIR}
|
|
.endif
|
|
# this is where ld.*so lives
|
|
SHLINKDIR?= /usr/libexec
|
|
LINTLIBDIR?= ${libprefix}/libdata/lint
|
|
LIBGRP?= ${BINGRP}
|
|
LIBOWN?= ${BINOWN}
|
|
LIBMODE?= ${NONBINMODE}
|
|
|
|
DOCDIR?= ${prefix}/share/doc
|
|
DOCGRP?= ${BINGRP}
|
|
DOCOWN?= ${BINOWN}
|
|
DOCMODE?= ${NONBINMODE}
|
|
|
|
NLSDIR?= ${prefix}/share/nls
|
|
NLSGRP?= ${BINGRP}
|
|
NLSOWN?= ${BINOWN}
|
|
NLSMODE?= ${NONBINMODE}
|
|
|
|
KMODDIR?= ${prefix}/lkm
|
|
KMODGRP?= ${BINGRP}
|
|
KMODOWN?= ${BINOWN}
|
|
KMODMODE?= ${NONBINMODE}
|
|
|
|
SHAREGRP?= ${BINGRP}
|
|
SHAREOWN?= ${BINOWN}
|
|
SHAREMODE?= ${NONBINMODE}
|
|
|
|
COPY?= -c
|
|
STRIP_FLAG?= -s
|
|
|
|
.if ${TARGET_OSNAME} == "NetBSD"
|
|
.if exists(/usr/libexec/ld.elf_so)
|
|
OBJECT_FMT=ELF
|
|
.endif
|
|
OBJECT_FMT?=a.out
|
|
.endif
|
|
# sys.mk should set something appropriate if need be.
|
|
OBJECT_FMT?=ELF
|
|
|
|
.if (${_HOST_OSNAME} == "FreeBSD")
|
|
CFLAGS+= ${CPPFLAGS}
|
|
.endif
|
|
|
|
# allow for per target flags
|
|
# apply the :T:R first, so the more specific :T can override if needed
|
|
CPPFLAGS += ${CPPFLAGS_${.TARGET:T:R}} ${CPPFLAGS_${.TARGET:T}}
|
|
CFLAGS += ${CFLAGS_${.TARGET:T:R}} ${CFLAGS_${.TARGET:T}}
|
|
|
|
# Define SYS_INCLUDE to indicate whether you want symbolic links to the system
|
|
# source (``symlinks''), or a separate copy (``copies''); (latter useful
|
|
# in environments where it's not possible to keep /sys publicly readable)
|
|
#SYS_INCLUDE= symlinks
|
|
|
|
# don't try to generate PIC versions of libraries on machines
|
|
# which don't support PIC.
|
|
.if (${MACHINE_ARCH} == "vax") || \
|
|
((${MACHINE_ARCH} == "mips") && defined(STATIC_TOOLCHAIN)) || \
|
|
((${MACHINE_ARCH} == "alpha") && defined(ECOFF_TOOLCHAIN))
|
|
MK_PIC=no
|
|
.endif
|
|
|
|
# No lint, for now.
|
|
NOLINT=
|
|
|
|
|
|
.if ${MK_LINKLIB} == "no"
|
|
MK_PICINSTALL= no
|
|
MK_PROFILE= no
|
|
.endif
|
|
|
|
.if ${MK_MAN} == "no"
|
|
MK_CATPAGES= no
|
|
.endif
|
|
|
|
.if ${MK_OBJ} == "no"
|
|
MK_OBJDIRS= no
|
|
MK_AUTO_OBJ= no
|
|
.endif
|
|
|
|
.if ${MK_SHARE} == "no"
|
|
MK_CATPAGES= no
|
|
MK_DOC= no
|
|
MK_INFO= no
|
|
MK_MAN= no
|
|
MK_NLS= no
|
|
.endif
|
|
|
|
# :U incase not using our sys.mk
|
|
.if ${MK_META_MODE:Uno} == "yes"
|
|
# should all be set by sys.mk if not default
|
|
TARGET_SPEC_VARS ?= MACHINE
|
|
.if ${TARGET_SPEC_VARS:[#]} > 1
|
|
TARGET_SPEC_VARS_REV := ${TARGET_SPEC_VARS:[-1..1]}
|
|
.else
|
|
TARGET_SPEC_VARS_REV = ${TARGET_SPEC_VARS}
|
|
.endif
|
|
.if ${MK_STAGING} == "yes"
|
|
STAGE_ROOT?= ${OBJROOT}/stage
|
|
STAGE_OBJTOP?= ${STAGE_ROOT}/${TARGET_SPEC_VARS_REV:ts/}
|
|
.endif
|
|
.endif
|
|
|
|
.endif
|