minix/share/mk/bsd.files.mk
Gianluca Guida 6567e50a6f mk scripts: add flag for compiling with nbsd libc.
This patch changes the system mk scripts to enable compilation
of programs using the BSD make system to compile with the new
libc.

In details, it does the following:

- it always defines the __MINIX make variable. This can be used,
 in porting applications, to specialize Makefiles for Minix.

 - If the environment variable NBSD is set to something different
  than 'no' and if the compiler is not ack, set NBSD_LIBC to 'yes'.
  This will set the destination lib directory to '/usr/netbsd/lib' 
  and set up CPPFLAGS and LDFLAGS to use new libc's includes and
  library directory.
2011-03-03 16:41:19 +00:00

162 lines
3.6 KiB
Makefile

# $NetBSD: bsd.files.mk,v 1.40 2008/12/05 18:51:16 cube Exp $
.if !defined(_MINIX_FILES_MK_)
_MINIX_FILES_MK_=1
.include <bsd.init.mk>
.if !target(__fileinstall)
##### Basic targets
realinstall: filesinstall
realall: filesbuild
##### Default values
FILESDIR?= ${BINDIR}
FILESOWN?= ${BINOWN}
FILESGRP?= ${BINGRP}
FILESMODE?= ${NONBINMODE}
##### Build rules
filesbuild:
.PHONY: filesbuild
##### Install rules
filesinstall:: # ensure existence
.PHONY: filesinstall
configfilesinstall:: .PHONY
__fileinstall: .USE
${_MKTARGET_INSTALL}
${INSTALL_FILE} \
-o ${FILESOWN_${.ALLSRC:T}:U${FILESOWN}} \
-g ${FILESGRP_${.ALLSRC:T}:U${FILESGRP}} \
-m ${FILESMODE_${.ALLSRC:T}:U${FILESMODE}} \
${SYSPKGTAG} ${.ALLSRC} ${.TARGET}
.endif # !target(__fileinstall)
.for F in ${FILES:O:u}
_FDIR:= ${FILESDIR_${F}:U${FILESDIR}} # dir override
_FNAME:= ${FILESNAME_${F}:U${FILESNAME:U${F:T}}} # name override
_F:= ${DESTDIR}${_FDIR}/${_FNAME} # installed path
_FDOBUILD:= ${FILESBUILD_${F}:Uno}
.if ${MKUPDATE} == "no"
${_F}! ${F} __fileinstall # install rule
.if !defined(BUILD) && !make(all) && !make(${F}) && (${_FDOBUILD} == "no")
${_F}! .MADE # no build at install
.endif
.else
${_F}: ${F} __fileinstall # install rule
.if !defined(BUILD) && !make(all) && !make(${F}) && (${_FDOBUILD} == "no")
${_F}: .MADE # no build at install
.endif
.endif
.if ${_FDOBUILD} != "no"
filesbuild: ${F}
CLEANFILES+= ${F}
.endif
filesinstall:: ${_F}
.PRECIOUS: ${_F} # keep if install fails
.endfor
#
# CONFIGFILES
#
configinstall: configfilesinstall
.for F in ${CONFIGFILES:O:u}
_FDIR:= ${FILESDIR_${F}:U${FILESDIR}} # dir override
_FNAME:= ${FILESNAME_${F}:U${FILESNAME:U${F:T}}} # name override
_F:= ${DESTDIR}${_FDIR}/${_FNAME} # installed path
_FDOBUILD:= ${FILESBUILD_${F}:Uno}
.if ${MKUPDATE} == "no"
${_F}! ${F} __fileinstall # install rule
.if !defined(BUILD) && !make(all) && !make(${F}) && (${_FDOBUILD} == "no")
${_F}! .MADE # no build at install
.endif
.else
${_F}: ${F} __fileinstall # install rule
.if !defined(BUILD) && !make(all) && !make(${F}) && (${_FDOBUILD} == "no")
${_F}: .MADE # no build at install
.endif
.endif
.if ${_FDOBUILD} != "no"
filesbuild: ${F}
CLEANFILES+= ${F}
.endif
configfilesinstall:: ${_F}
.PRECIOUS: ${_F} # keep if install fails
.endfor
.undef _FDIR
.undef _FNAME
.undef _F
#
# BUILDSYMLINKS
#
.if defined(BUILDSYMLINKS) # {
.for _SL _TL in ${BUILDSYMLINKS}
BUILDSYMLINKS.s+= ${_SL}
BUILDSYMLINKS.t+= ${_TL}
${_TL}: ${_SL}
${_MKMSG} "symlink " ${.CURDIR:T}/${.TARGET}
rm -f ${.TARGET}
ln -s ${.ALLSRC} ${.TARGET}
.endfor
realall: ${BUILDSYMLINKS.t}
cleandir: cleanbuildsymlinks
cleanbuildsymlinks: .PHONY
rm -f ${BUILDSYMLINKS.t}
.endif # }
#
# .uue -> "" handling (i.e. decode a given binary/object)
#
# UUDECODE_FILES - List of files which are stored in the source tree
# as <file>.uue and should be uudecoded.
#
# UUDECODE_FILES_RENAME_fn - For this file, rename its output to the provided
# name (handled via -p and redirecting stdout)
.if defined(UUDECODE_FILES) # {
.SUFFIXES: .uue
.uue:
${_MKTARGET_CREATE}
rm -f ${.TARGET} ${.TARGET}.tmp
${TOOL_UUDECODE} -p ${.IMPSRC} > ${.TARGET}.tmp \
&& mv ${.TARGET}.tmp ${UUDECODE_FILES_RENAME_${.TARGET}:U${.TARGET}}
realall: ${UUDECODE_FILES}
CLEANUUDECODE_FILES=${UUDECODE_FILES} ${UUDECODE_FILES:=.tmp}
.for i in ${UUDECODE_FILES}
CLEANUUDECODE_FILES+=${UUDECODE_FILES_RENAME_${i}}
.endfor
clean: cleanuudecodefiles
cleanuudecodefiles: .PHONY
rm -f ${CLEANUUDECODE_FILES}
.endif # }
##### Pull in related .mk logic
.include <bsd.obj.mk>
.include <bsd.sys.mk>
.endif # !defined(_MINIX_FILES_MK_)