5678e04508
- add many subdirs of libs missing - output a literal $NetBSD$ as well as the expanded version of this script - special case a bunch of the external subdirs, since some of the library subdirs exist in toplevel directory, not the "lib" directory
148 lines
3.7 KiB
Bash
Executable File
148 lines
3.7 KiB
Bash
Executable File
#! /bin/sh
|
|
|
|
# generate src/compat/* Makefile's based on SUBDIR values in
|
|
# the main source tree
|
|
|
|
srcdir=/usr/src
|
|
rwsrcdir=/home/current/src
|
|
MAKE=${MAKE-make}
|
|
|
|
CHECK_SUBDIRS="gnu/lib gnu/lib/libgcc4 lib lib/csu lib/i18n_module external/bsd/atf/lib external/bsd/openldap/lib lib/libpam/modules external/bsd/bind/lib external/ibm-public/postfix/lib external/bsd/iscsi crypto/external/bsd/openssl/lib crypto/external/bsd/netpgp crypto/external/bsd/openssh"
|
|
|
|
# lib/csu is spsecial
|
|
# lib/libm needs to be special -- i387
|
|
# gnu/lib/libsupc++ -- fails to get NOPROFILE properly
|
|
|
|
tmpdir=`mktemp -d /var/tmp/build-makefiles-$$.XXXXXX` || exit 1
|
|
|
|
write_if_new() {
|
|
_file="$1"
|
|
_new="$2"
|
|
}
|
|
|
|
for _dir in ${CHECK_SUBDIRS}; do
|
|
if [ ${_dir} = "lib/csu" ]; then
|
|
_subdirs="i386_elf sparc_elf"
|
|
else
|
|
_subdirs=`cd ${srcdir}/${_dir}; ${MAKE} -V SUBDIR`
|
|
fi
|
|
|
|
echo "looking in: $_dir: subdirs $_subdirs"
|
|
for _sd in $_subdirs; do
|
|
# skip lib/csu --
|
|
if [ "$_dir" = "lib" -a "$_sd" = "csu" ]; then
|
|
continue
|
|
fi
|
|
|
|
# skip .WAIT --
|
|
if [ "$_sd" = ".WAIT" ]; then
|
|
continue
|
|
fi
|
|
|
|
# skip a bunch of non-lib subdirs --
|
|
case "$_dir/$_sd" in
|
|
external/bsd/fetch | \
|
|
external/bsd/file | \
|
|
external/bsd/iscsi | \
|
|
external/bsd/libarchive | \
|
|
crypto/external/bsd/netpgp | \
|
|
crypto/external/bsd/openssh )
|
|
if [ "$_sd" != "lib" ]; then
|
|
continue;
|
|
fi
|
|
esac
|
|
|
|
_libdplibs="`cd ${srcdir}/${_dir}/${_sd}; ${MAKE} -V LIBDPLIBS | sed 's,\({NETBSDSRCDIR}\),\1/compat,g'`"
|
|
echo "creating stuff for subdir: $_sd"
|
|
echo " - libdplibs = ${_libdplibs}"
|
|
mkdir -p ${rwsrcdir}/compat/${_dir}/${_sd}
|
|
(
|
|
echo -n '# $Net'
|
|
echo 'BSD$'
|
|
echo '# Generated from: $NetBSD: build-makefiles,v 1.6 2009/07/21 00:12:00 mrg Exp $' | sed -e 's/$//g'
|
|
cat <<'EOF'
|
|
|
|
NOLINT= # defined
|
|
NOMAN= # defined
|
|
NONLS= # defined
|
|
NOINFO= # defined
|
|
NOSHARE= # defined
|
|
EOF
|
|
# XXX various hacks
|
|
case "${_sd}" in
|
|
libsupc++4)
|
|
echo "NOPROFILE= # defined"
|
|
;;
|
|
libc)
|
|
echo "# XXX"
|
|
echo "nsparser.h: nsparser.c"
|
|
;;
|
|
libpcap)
|
|
echo "# XXX"
|
|
echo "grammar.h: grammar.c"
|
|
;;
|
|
libipsec)
|
|
echo "# XXX"
|
|
echo "policy_parse.h: policy_parse.c"
|
|
;;
|
|
esac
|
|
|
|
if [ -n "${_libdplibs}" ]; then
|
|
echo "LIBDPLIBS= ${_libdplibs}"
|
|
fi
|
|
cat <<'EOF'
|
|
|
|
NOCHECKVER= # defined
|
|
|
|
.include <bsd.obj.mk>
|
|
|
|
# Resolve pathnames in variables.
|
|
_RESOLVE_VARS= CFLAGS CPPFLAGS DPADD LDADD LIBDPLIBS LIB_ROOT_DIR
|
|
.for var in ${_RESOLVE_VARS}
|
|
${var}:= ${${var}}
|
|
.endfor
|
|
|
|
.include <bsd.own.mk>
|
|
|
|
_CURDIR:= ${.CURDIR}
|
|
|
|
EOF
|
|
printf ".PATH: \${NETBSDSRCDIR}/${_dir}/${_sd}\n"
|
|
printf ".CURDIR:=\${NETBSDSRCDIR}/${_dir}/${_sd}\n\n"
|
|
cat <<'EOF'
|
|
.include "${NETBSDSRCDIR}/compat/Makefile.compat"
|
|
.include "${.CURDIR}/Makefile"
|
|
|
|
# Resolve pathnames from "real" Makefile, and switch .CURDIR back.
|
|
_RESOLVE_VARS= CFLAGS CPPFLAGS DPADD LDADD ARCHDIR COMPATDIR COMPATARCHDIR LIBCDIR RPC_INCS RPC_XDIR LIBEDITDIR MODOBJDIR RUMPTOP
|
|
.for var in ${_RESOLVE_VARS}
|
|
${var}:= ${${var}}
|
|
.endfor
|
|
|
|
.CURDIR:= ${_CURDIR}
|
|
.undef _CURDIR
|
|
EOF
|
|
) > ${rwsrcdir}/compat/${_dir}/${_sd}/Makefile
|
|
done
|
|
|
|
if [ "${_dir}" != "lib/csu" ]; then
|
|
(printf '# $'NetBSD'$\n\n'
|
|
printf ".include <bsd.own.mk>\n\n"
|
|
printf "_CURDIR:= \${.CURDIR}\n\n"
|
|
printf ".CURDIR:=\${NETBSDSRCDIR}/${_dir}\n\n"
|
|
printf ".include "'"'"\${.CURDIR}/Makefile"'"'"\n\n"
|
|
printf ".CURDIR:= \${_CURDIR}\n"
|
|
) > ${rwsrcdir}/compat/${_dir}/Makefile
|
|
|
|
if [ -f "${srcdir}/${_dir}/Makefile.inc" ]; then
|
|
(printf '# $'NetBSD'$\n\n'
|
|
printf ".include <bsd.own.mk>\n\n"
|
|
printf "_CURDIR:= \${.CURDIR}\n\n"
|
|
printf ".include "'"'"\${NETBSDSRCDIR}/${_dir}/Makefile.inc"'"'"\n\n"
|
|
printf ".CURDIR:= \${_CURDIR}\n"
|
|
) > ${rwsrcdir}/compat/${_dir}/Makefile.inc
|
|
fi
|
|
fi
|
|
|
|
done
|