diff -r 2aaecc416cc2 -r a9d5b29099c7 bootstrap/README.Cygwin --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bootstrap/README.Cygwin Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,29 @@ +$NetBSD$ + +* Not tested on Cygwin 1.7. +T.B.D. + +* WARNING! Cygwin is VERY slow +T.B.D. + +* required cygwin packages +T.B.D. + +* Case sensitive file system +** mount -o managed +T.B.D. + +* su command +Cygwin has su command but it doesn't work. Possible workarounds are: + + * Do pkgsrc build as an administrator. + You can start Administrator's shell by + runas /user:administrator C:\CYGWIN\Cygwin.bat + + * Unprivileged mode. + run bootstrap script with --unprivileged + + * Use sysutils/su_cygwin package. + I wrote a small script to simulate su command by means of ssh. + You need to start SSH server on your machine by + cygrunsrv -S sshd diff -r 2aaecc416cc2 -r a9d5b29099c7 bootstrap/bootstrap --- a/bootstrap/bootstrap Fri Jul 03 02:24:13 2009 +0900 +++ b/bootstrap/bootstrap Sat Jul 11 13:40:56 2009 +0900 @@ -40,7 +40,7 @@ # tools: CP, GREP, ID, MKDIR, SH, TEST, TOUCH, XARGS -BOOTSTRAP_VERSION=20060721 +BOOTSTRAP_VERSION=20081001 # Don't let the bootstrap program get confused by a pre-existing mk.conf # file. @@ -85,6 +85,11 @@ # strip / for BSD/OS, strip - for HP-UX opsys=`uname -s | tr -d /-` +case ${opsys} in +CYGWIN_*) opsys=Cygwin;; +esac + +SKIP="echo SKIPPING" mkbinarykit_macpkg() { @@ -239,6 +244,37 @@ echo "LDD= $prefix/sbin/fakeldd" >> ${TARGET_MKCONF} fi ;; + Cygwin) + if [ "$unprivileged" = "yes" ]; then + # Use numeric ID to avoid white spaces in user/group names + echo 'UNPRIVILEGED_GROUP= '$(/bin/id -g) >> ${BOOTSTRAP_MKCONF} + echo 'UNPRIVILEGED_GROUPS= '$(/bin/id -G) >> ${BOOTSTRAP_MKCONF} + echo 'UNPRIVILEGED_USER= '$(/bin/id -u) >> ${BOOTSTRAP_MKCONF} + echo 'SU_CMD=${SH} -c' >> ${BOOTSTRAP_MKCONF} + + cat >> ${TARGET_MKCONF} <<'EOF' +.if !defined(UNPIVILEGED_USER) +UNPRIVILEGED_GROUP!= /bin/id -g +UNPRIVILEGED_GROUPS!= /bin/id -G +UNPRIVILEGED_USER!= /bin/id -u +.endif +SU_CMD=${SH} -c' +EOF + fi + + if test -z "$ID"; then + echo "ID= $pkgsrcdir/sysutils/id_cygwin/files/id_cygwin.sh" >> ${BOOTSTRAP_MKCONF} + echo "TOOLS_PLATFORM.id?= $pkgsrcdir/sysutils/id_cygwin/files/id_cygwin.sh" >> ${BOOTSTRAP_MKCONF} + cat >> ${TARGET_MKCONF} <> ${TARGET_MKCONF} + fi # save environment in example mk.conf @@ -885,17 +948,23 @@ bootstrap_bmake() { echo_msg "Bootstrapping bmake" copy_src $pkgsrcdir/devel/bmake/files bmake - run_cmd "(cd $wrkdir/bmake && env $bmakexenv $shprog ./boot-strap $configure_quiet_flags -q -o $opsys --prefix=$wrkdir --sysconfdir=$wrkdir --mksrc none --with-default-sys-path="$wrkdir/share/mk" $bmakexargs)" - run_cmd "$install_sh -c -o $user -g $group -m 755 $wrkdir/bmake/$opsys/bmake $wrkdir/bin/bmake" + run_cmd "(cd $wrkdir/bmake && env $bmakexenv $shprog ./boot-strap $configure_quiet_flags -q -o work.$opsys --prefix=$wrkdir --sysconfdir=$wrkdir --mksrc none --with-default-sys-path="$wrkdir/share/mk" $bmakexargs)" + run_cmd "$install_sh -c -o $user -g $group -m 755 $wrkdir/bmake/work.$opsys/bmake $wrkdir/bin/bmake" } bootstrap_bmake bmake="$wrkdir/bin/bmake $make_quiet_flags" + + # build libnbcompat -echo_msg "Building libnbcompat" -copy_src $pkgsrcdir/pkgtools/libnbcompat/files libnbcompat -run_cmd "(cd $wrkdir/libnbcompat; $shprog ./configure $configure_quiet_flags -C --prefix=$prefix --mandir=$mandir --sysconfdir=$sysconfdir --enable-bsd-getopt --enable-db && $bmake $make_quiet_flags)" +bootstrap_libnbcompat() +{ + echo_msg "Building libnbcompat" + copy_src $pkgsrcdir/pkgtools/libnbcompat/files libnbcompat + run_cmd "(cd $wrkdir/libnbcompat; $shprog ./configure $configure_quiet_flags -C --prefix=$prefix --mandir=$mandir --sysconfdir=$sysconfdir --enable-bsd-getopt --enable-db && $bmake $make_quiet_flags)" +} +bootstrap_libnbcompat # bootstrap ksh if necessary case "$need_ksh" in @@ -939,17 +1008,21 @@ esac # bootstrap pkg_install -echo_msg "Bootstrapping pkgtools" -copy_src $pkgsrcdir/pkgtools/pkg_install/files pkg_install -run_cmd "(cd $wrkdir/pkg_install; env $BSTRAP_ENV \ +bootstrap_pkg_install() { + echo_msg "Bootstrapping pkgtools" + copy_src $pkgsrcdir/pkgtools/pkg_install/files pkg_install + run_cmd "(cd $wrkdir/pkg_install; env $BSTRAP_ENV \ CPPFLAGS='$CPPFLAGS -I../libnbcompat -I../../libnbcompat' \ LDFLAGS='$LDFLAGS -L../libnbcompat -L../../libnbcompat' \ LIBS='-lnbcompat' $shprog ./configure $configure_quiet_flags -C \ --enable-bootstrap --prefix=$prefix --sysconfdir=$sysconfdir \ --with-pkgdbdir=$pkgdbdir --mandir=$mandir $pkg_install_args && $bmake)" -run_cmd "$install_sh -c -o $user -g $group -m 755 $wrkdir/pkg_install/admin/pkg_admin $wrkdir/sbin/pkg_admin" -run_cmd "$install_sh -c -o $user -g $group -m 755 $wrkdir/pkg_install/create/pkg_create $wrkdir/sbin/pkg_create" -run_cmd "$install_sh -c -o $user -g $group -m 755 $wrkdir/pkg_install/info/pkg_info $wrkdir/sbin/pkg_info" + run_cmd "$install_sh -c -o $user -g $group -m 755 $wrkdir/pkg_install/admin/pkg_admin $wrkdir/sbin/pkg_admin" + run_cmd "$install_sh -c -o $user -g $group -m 755 $wrkdir/pkg_install/create/pkg_create $wrkdir/sbin/pkg_create" + run_cmd "$install_sh -c -o $user -g $group -m 755 $wrkdir/pkg_install/info/pkg_info $wrkdir/sbin/pkg_info" +} +bootstrap_pkg_install + echo "PKG_ADMIN_CMD?= $wrkdir/sbin/pkg_admin" >> ${BOOTSTRAP_MKCONF} echo "PKG_CREATE_CMD?= $wrkdir/sbin/pkg_create" >> ${BOOTSTRAP_MKCONF} echo "PKG_INFO_CMD?= $wrkdir/sbin/pkg_info" >> ${BOOTSTRAP_MKCONF} @@ -1011,6 +1084,7 @@ opsys_finish echo "WRKOBJDIR= ${wrkdir}/wrk" >> ${BOOTSTRAP_MKCONF} +mkdir_p ${wrkdir}/wrk echo "" >> ${TARGET_MKCONF} echo "" >> ${BOOTSTRAP_MKCONF} @@ -1021,6 +1095,7 @@ echo ".endif # end pkgsrc settings" >> ${TARGET_MKCONF} echo ".endif # end pkgsrc settings" >> ${BOOTSTRAP_MKCONF} + # register packages # usage: register_package [additional arguments] build_package() { @@ -1049,6 +1124,12 @@ case "$need_extras" in yes) build_package "pkgtools/bootstrap-extras";; esac +case ${OPSYS} in +Cygwin) + build_package "sysutils/id_cygwin" + build_package "sysutils/su_cygwin" + ;; +esac build_package "pkgtools/pkg_install" etc_mk_conf="$sysconfdir/mk.conf" diff -r 2aaecc416cc2 -r a9d5b29099c7 devel/bmake/Makefile --- a/devel/bmake/Makefile Fri Jul 03 02:24:13 2009 +0900 +++ b/devel/bmake/Makefile Sat Jul 11 13:40:56 2009 +0900 @@ -26,7 +26,7 @@ INSTALLATION_DIRS= bin ${PKGMANDIR}/man1 -BOOTSTRAP_ARGS= -q -o ${OPSYS} --prefix=${PREFIX} \ +BOOTSTRAP_ARGS= -q -o work.${OPSYS} --prefix=${PREFIX} \ --with-default-sys-path=${makesyspath} \ --mksrc none --sysconfdir=${PKG_SYSCONFDIR:Q} @@ -47,7 +47,7 @@ ${SETENV} ${MAKE_ENV} ${SH} ./bmake/boot-strap ${BOOTSTRAP_ARGS} do-install: - ${INSTALL_PROGRAM} ${WRKDIR}/${OPSYS}/bmake ${DESTDIR}${PREFIX}/bin + ${INSTALL_PROGRAM} ${WRKDIR}/work.${OPSYS}/bmake ${DESTDIR}${PREFIX}/bin ${INSTALL_MAN} ${WRKSRC}/bmake.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1 .include "../../mk/bsd.pkg.mk" diff -r 2aaecc416cc2 -r a9d5b29099c7 devel/bmake/files/machine.sh --- a/devel/bmake/files/machine.sh Fri Jul 03 02:24:13 2009 +0900 +++ b/devel/bmake/files/machine.sh Sat Jul 11 13:40:56 2009 +0900 @@ -23,6 +23,10 @@ machine=`uname -p 2>/dev/null || uname -m` MACHINE= +case "$OS" in +Cygwin_*) OS=Cygwin;; +esac + case "$machine" in unknown) machine=`uname -m` @@ -62,7 +66,7 @@ HP-UX) MACHINE_ARCH=`IFS="/-."; set $machine; echo $1` ;; -Interix) +Interix|Cygwin) MACHINE=i386 MACHINE_ARCH=i386 ;; diff -r 2aaecc416cc2 -r a9d5b29099c7 graphics/xpm/builtin.mk --- a/graphics/xpm/builtin.mk Fri Jul 03 02:24:13 2009 +0900 +++ b/graphics/xpm/builtin.mk Sat Jul 11 13:40:56 2009 +0900 @@ -23,7 +23,7 @@ fi . elif ${OPSYS} == "IRIX" IS_BUILTIN.xpm= yes -. elif ${OPSYS} == "Darwin" +. elif ${OPSYS} == "Darwin" || ${OPSYS} == "Cygwin" IS_BUILTIN.xpm= yes . else BUILTIN_IMAKE_CHECK:= xpm:NormalLibXpm diff -r 2aaecc416cc2 -r a9d5b29099c7 mk/bsd.prefs.mk --- a/mk/bsd.prefs.mk Fri Jul 03 02:24:13 2009 +0900 +++ b/mk/bsd.prefs.mk Sat Jul 11 13:40:56 2009 +0900 @@ -70,7 +70,7 @@ .endif .if !defined(OPSYS) -OPSYS:= ${:!${UNAME} -s!:S/-//g:S/\///g} +OPSYS:= ${:!${UNAME} -s!:S/-//g:S/\///g:C/^CYGWIN_.*$/Cygwin/} MAKEFLAGS+= OPSYS=${OPSYS:Q} .endif @@ -121,6 +121,13 @@ .elif ${OPSYS} == "BSDOS" LOWER_OPSYS?= bsdi +.elif ${OPSYS} == "Cygwin" +LOWER_OPSYS?= cygwin +LOWER_VENDOR?= pc +LOWER_ARCH!= uname -m +_OS_VERSION!= uname -r +OS_VERSION= ${_OS_VERSION:C/(.*)//} + .elif ${OPSYS} == "Darwin" LOWER_OPSYS?= darwin LOWER_ARCH!= ${UNAME} -p diff -r 2aaecc416cc2 -r a9d5b29099c7 mk/compiler/gcc.mk --- a/mk/compiler/gcc.mk Fri Jul 03 02:24:13 2009 +0900 +++ b/mk/compiler/gcc.mk Sat Jul 11 13:40:56 2009 +0900 @@ -521,4 +521,8 @@ . include "../../mk/compiler/f2c.mk" .endif +.if ${OPSYS} == "Cygwin" +LDFLAGS+= -Wl,--enable-auto-import +.endif + .endif # COMPILER_GCC_MK diff -r 2aaecc416cc2 -r a9d5b29099c7 mk/flavor/pkg/metadata.mk --- a/mk/flavor/pkg/metadata.mk Fri Jul 03 02:24:13 2009 +0900 +++ b/mk/flavor/pkg/metadata.mk Sat Jul 11 13:40:56 2009 +0900 @@ -275,11 +275,17 @@ _SIZE_ALL_FILE= ${PKG_DB_TMPDIR}/+SIZE_ALL _METADATA_TARGETS+= ${_SIZE_ALL_FILE} +_XARGS_OPTS= -n 256 +.if ${OPSYS} == "Cygwin" +# GNU xarg needs -r to make it do nothing when input is empty. +_XARGS_OPTS+= -r +.endif + ${_SIZE_ALL_FILE}: ${_RDEPENDS_FILE} ${RUN}${MKDIR} ${.TARGET:H} ${RUN} \ ${_FULL_DEPENDS_CMD} | ${SORT} -u | \ - ${XARGS} -n 256 ${PKG_INFO} -qs | \ + ${XARGS} ${_XARGS_OPTS} ${PKG_INFO} -qs | \ ${AWK} 'BEGIN { s = 0 } /^[0-9]+$$/ { s += $$1 } END { print s }' \ > ${.TARGET} diff -r 2aaecc416cc2 -r a9d5b29099c7 mk/platform/Cygwin.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mk/platform/Cygwin.mk Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,174 @@ +# $NetBSD: Interix.mk,v 1.56 2008/03/04 06:45:34 jlam Exp $ +# +# Variable definitions for Windows with Cygwin +# Derived from Interix.mk + +# SHLIB BASE ADDRESSES: +# XXX: TBD +# + +### +### Overrides to standard BSD .mk files +### + +# "catinstall" not yet supported as there's no shipped [gn]roff +MANINSTALL= maninstall +MAKE_FLAGS+= MKCATPAGES=no NOLINT=1 + +### +### Alternate defaults to global pkgsrc settings, to help avoid +### some of the excessive Interix fork(2) overhead, and reduce the +### amount of settings required in the user's mk.conf +### + +# NetBSD's faster, vfork-capable shell (not yet in pkgsrc) +#BULK_PREREQ+= shells/nbsh +.if exists(${PREFIX}/bin/nbsh) +TOOLS_SHELL?= ${PREFIX}/bin/nbsh +WRAPPER_SHELL?= ${PREFIX}/bin/nbsh +.endif + +INSTALL?= /usr/bin/install +PAX?= ${PREFIX}/bin/pax +#SED?= ${PREFIX}/bin/nbsed +SED?= /usr/bin/sed + +GCC_USE_SYMLINKS?= yes +WRAPPER_DEBUG?= no + +.if defined(BATCH) +BULK_PREREQ+= lang/perl5 +USE_BULK_BROKEN_CHECK?= no +USE_BULK_TIMESTAMPS?= no +.endif + +### +### Platform definitions common to pkgsrc/mk/platform/*.mk +### + +ECHO_N?= ${ECHO} -n # does not support "echo -n" +IMAKE_MAKE?= ${GMAKE} # program which gets invoked by imake +IMAKEOPTS+= -DBuildHtmlManPages=NO +PKGLOCALEDIR?= share +PS?= /bin/ps +SU?= /usr/pkg/bin/su # /bin/su doesn't work on Cygwin +#TYPE?= type # Shell builtin + +#XXX +USERADD?= ${LOCALBASE}/sbin/useradd +GROUPADD?= ${LOCALBASE}/sbin/groupadd +_PKG_USER_HOME?= # empty by default +_USER_DEPENDS= user>=20040426:../../sysutils/user_interix + +CPP_PRECOMP_FLAGS?= # unset +CONFIG_RPATH_OVERRIDE?= config.rpath */config.rpath */*/config.rpath +DEF_UMASK?= 002 +EXPORT_SYMBOLS_LDFLAGS?=-Wl,-E # add symbols to the dynamic symbol table + +MOTIF_TYPE_DEFAULT?= openmotif # default 2.0 compatible libs type +NOLOGIN?= /bin/false +PKG_TOOLS_BIN?= ${LOCALBASE}/sbin +PKGDIRMODE?= 775 +# ROOT_USER might be numeric in the special case of Administrator; canonify it: +ROOT_CMD?= ${SU} - "$$(${ID} -un ${ROOT_USER})" -c +ROOT_USER?= ${BINOWN} +ROOT_GROUP!= ${ID} -g Administrators +TOUCH_FLAGS?= +ULIMIT_CMD_datasize?= ulimit -d `ulimit -H -d` +ULIMIT_CMD_stacksize?= ulimit -s `ulimit -H -s` +ULIMIT_CMD_memorysize?= ulimit -v `ulimit -H -v` + +# imake installs manpages in weird places +IMAKE_MAN_SOURCE_PATH= man/man +IMAKE_MAN_SUFFIX= n +IMAKE_LIBMAN_SUFFIX= 3 +IMAKE_KERNMAN_SUFFIX= 4 +IMAKE_FILEMAN_SUFFIX= 5 +IMAKE_GAMEMAN_SUFFIX= 6 +IMAKE_MISCMAN_SUFFIX= 7 +IMAKE_MAN_DIR= ${IMAKE_MAN_SOURCE_PATH}n +IMAKE_LIBMAN_DIR= ${IMAKE_MAN_SOURCE_PATH}3 +IMAKE_KERNMAN_DIR= ${IMAKE_MAN_SOURCE_PATH}4 +IMAKE_FILEMAN_DIR= ${IMAKE_MAN_SOURCE_PATH}5 +IMAKE_GAMEMAN_DIR= ${IMAKE_MAN_SOURCE_PATH}6 +IMAKE_MISCMAN_DIR= ${IMAKE_MAN_SOURCE_PATH}7 +IMAKE_MANNEWSUFFIX= ${IMAKE_MAN_SUFFIX} +IMAKE_MANINSTALL?= maninstall +IMAKE_TOOLS= gmake # extra tools required when we use imake + +.if exists(/usr/include/netinet6) +_OPSYS_HAS_INET6= yes # IPv6 is standard +.else +_OPSYS_HAS_INET6= no # IPv6 is not standard +.endif +_OPSYS_HAS_JAVA= no # Java is not standard +_OPSYS_HAS_MANZ= yes # MANZ controls gzipping of man pages +_OPSYS_HAS_OSSAUDIO= no # libossaudio is available +_OPSYS_LIBTOOL_REQD= 1.5.18nb6 +_OPSYS_PERL_REQD= 5.8.3nb1 # base version of perl required +_OPSYS_PTHREAD_AUTO= no # -lpthread needed for pthreads +_OPSYS_SHLIB_TYPE= cygwin # shared lib type +_PATCH_CAN_BACKUP= yes # native patch(1) can make backups +_PATCH_BACKUP_ARG?= -b -V simple -z # switch to patch(1) for backup suffix +# XXX +_USE_RPATH= no # add rpath to LDFLAGS + +# flags passed to the linker to extract all symbols from static archives. +# this is GNU ld. +_OPSYS_WHOLE_ARCHIVE_FLAG= -Wl,--whole-archive +_OPSYS_NO_WHOLE_ARCHIVE_FLAG= -Wl,--no-whole-archive + +_STRIPFLAG_CC?= ${_INSTALL_UNSTRIPPED:D:U-s} # cc(1) option to strip +_STRIPFLAG_INSTALL?= ${_INSTALL_UNSTRIPPED:D:U-s} # install(1) option to strip + +# XXX +#DEFAULT_SERIAL_DEVICE?= /dev/tty00 +#SERIAL_DEVICES?= /dev/tty00 /dev/tty01 /dev/tty02 /dev/tty03 + +# poll(2) is broken; try to work around it by making autoconf believe +# it's missing. (Packages without autoconf will need explicit fixing.) +#CONFIGURE_ENV+= ${GNU_CONFIGURE:Dac_cv_header_poll_h=no ac_cv_func_poll=no} + +# Interix has a hstrerror(3), but it's a macro, not a function. +#CONFIGURE_ENV+= ${GNU_CONFIGURE:Dac_cv_func_hstrerror=yes} + +# XXX +# check for maximum command line length and set it in configure's environment, +# to avoid a test required by the libtool script that takes forever. +_OPSYS_MAX_CMDLEN_CMD= ${ECHO} 262144 + +# If games are to be installed setgid, then SETGIDGAME is set to 'yes' +# (it defaults to 'no' as per defaults/mk.conf). +# Set the group and mode to meaningful values in that case (defaults to +# BINOWN, BINGRP and BINMODE as per defaults/mk.conf). +# FIXME: Adjust to work on this system and enable the lines below. +#.if !(empty(SETGIDGAME:M[yY][eE][sS])) +#GAMES_USER= games +#GAMES_GROUP= games +#GAMEOWN= ${GAMES_USER} +#GAMEGRP= ${GAMES_GROUP} +#GAMEMODE= 2555 +#GAMEDIRMODE= 0775 +#.endif + +# +# On cygwin, even privileged users are not allowed to modify files if +# file permission bits are not set. (Unlike on Unix where root can +# always write or delete files regardless with file permissions). +# +# We need to change file permissions so that privileged user can add +# new files or modify files under ${WRKDIR}. +# +# XXX: This takes VERY long time on cygwin. +# +.if !defined(UNPRIVILEGED) || empty(UNPRIVILEGED:M[Yy][Ee][Ss]) +unprivileged-install-hook: change-permission-of-workdir +.endif + +.PHONY: change-permission-of-workdir +change-permission-of-workdir: + @${ECHO_MSG} Changing workdir permission for su-install. + ${RUN} /bin/find ${WRKDIR:Q} \! -user ${BINOWN:Q} \! -type l | \ + while read file; do \ + ${CHGRP} ${BINGRP:Q} $$file; \ + ${CHMOD} g+w $$file; done diff -r 2aaecc416cc2 -r a9d5b29099c7 mk/plist/libtool-expand --- a/mk/plist/libtool-expand Fri Jul 03 02:24:13 2009 +0900 +++ b/mk/plist/libtool-expand Sat Jul 11 13:40:56 2009 +0900 @@ -89,5 +89,17 @@ fi ${ECHO} "$libpath" done + + if ${TEST} "${OPSYS}" = "Cygwin"; then + if ${TEST} -n "${dlname}"; then + dir=`dirname "$lapath"` + if ${TEST} -f "$dir/$dlname"; then + # This will generate messy path like + # ./lib/../bin/cygfoo.dll + # It will be cleaned up by shlib-cygwin.awk + ${ECHO} "$dir/$dlname" + fi + fi + fi fi done | ${SORT} -u diff -r 2aaecc416cc2 -r a9d5b29099c7 mk/plist/plist-cygwin.awk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mk/plist/plist-cygwin.awk Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,18 @@ +# $NetBSD$ +# +### Executable binary files on Cygwin: +### Executable binary files have .exe suffix. +### Cygwin's /bin/install automatically adds .exe when necessary. +### "test -f foo" succeeds when foo.exe exists. + +BEGIN { + PREFIX = ENVIRON["PREFIX"] ? ENVIRON["PREFIX"] : "/usr/pkg" + TEST = ENVIRON["TEST"] ? ENVIRON["TEST"] : "test" +} + +!/^@/ { + cmd = TEST " -f " PREFIX "/" $0 ".exe" + if (system(cmd) == 0) { + $0 = $0 ".exe" + } +} diff -r 2aaecc416cc2 -r a9d5b29099c7 mk/plist/plist.mk --- a/mk/plist/plist.mk Fri Jul 03 02:24:13 2009 +0900 +++ b/mk/plist/plist.mk Sat Jul 11 13:40:56 2009 +0900 @@ -181,6 +181,9 @@ _PLIST_AWK+= -f ${.CURDIR}/../../mk/plist/plist-info.awk _PLIST_AWK+= -f ${.CURDIR}/../../mk/plist/plist-man.awk _PLIST_AWK+= -f ${.CURDIR}/../../mk/plist/plist-libtool.awk +.if ${OPSYS} == "Cygwin" +_PLIST_AWK+= -f ${.CURDIR}/../../mk/plist/plist-cygwin.awk +.endif _PLIST_AWK+= -f ${.CURDIR}/../../mk/plist/plist-default.awk _PLIST_INFO_AWK+= -f ${.CURDIR}/../../mk/plist/plist-functions.awk @@ -192,6 +195,7 @@ _SHLIB_AWKFILE.SOM= ${.CURDIR}/../../mk/plist/shlib-som.awk _SHLIB_AWKFILE.aixlib= ${.CURDIR}/../../mk/plist/shlib-elf.awk _SHLIB_AWKFILE.a.out= ${.CURDIR}/../../mk/plist/shlib-aout.awk +_SHLIB_AWKFILE.cygwin= ${.CURDIR}/../../mk/plist/shlib-cygwin.awk _SHLIB_AWKFILE.dylib= ${.CURDIR}/../../mk/plist/shlib-dylib.awk _SHLIB_AWKFILE.none= ${.CURDIR}/../../mk/plist/shlib-none.awk diff -r 2aaecc416cc2 -r a9d5b29099c7 mk/plist/shlib-cygwin.awk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mk/plist/shlib-cygwin.awk Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,25 @@ +# $NetBSD$ +# +### +### Shared libraries on Cygwin: +### libfoo.dll.a and libfoo.la are installed to ${PREFIX}/lib +### cygfoo.dll is installed to ${PREFIX}/bin +### This script cleans up the entries for *.dll added by ./libtool-expand +### + +# + +/^\.\// { + # remove leading "./" + gsub(/^(\.\/)+/, "") +} + +/\.\./ { + # remove foo/../ + gsub(/[^\/]+\/\.\.\//, "") + gsub(/[^\/]+\/\.\.$/, "") +} + +{ + print +} diff -r 2aaecc416cc2 -r a9d5b29099c7 mk/tools/tools.Cygwin.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mk/tools/tools.Cygwin.mk Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,96 @@ +# $NetBSD: tools.Interix.mk,v 1.21 2006/11/06 19:18:42 tv Exp $ +# +# System-supplied tools for the Interix operating system. + +TOOLS_PLATFORM.[?= /bin/[ +TOOLS_PLATFORM.awk?= /bin/awk +TOOLS_PLATFORM.basename?= /bin/basename +TOOLS_PLATFORM.bash?= /bin/bash +.if exists(/bin/bison) +TOOLS_PLATFORM.bison?= /bin/bison +TOOLS_PLATFORM.bison-yacc?= /bin/bison -y +.endif +.if exists(/bin/bzcat) +TOOLS_PLATFORM.bzcat?= /bin/bzcat +.elif exists(/bin/bzip2) +TOOLS_PLATFORM.bzcat?= /bin/bzip2 -cd +.endif +.if exists(/bin/bzip2) +TOOLS_PLATFORM.bzip2?= /bin/bzip2 +.endif + +TOOLS_PLATFORM.cat?= /bin/cat +TOOLS_PLATFORM.chgrp?= /bin/chgrp +TOOLS_PLATFORM.chmod?= /bin/chmod +TOOLS_PLATFORM.chown?= /bin/chown +TOOLS_PLATFORM.cmp?= /bin/cmp +TOOLS_PLATFORM.cp?= /bin/cp +TOOLS_PLATFORM.csh?= /bin/csh +TOOLS_PLATFORM.cut?= /bin/cut +TOOLS_PLATFORM.date?= /bin/date +TOOLS_PLATFORM.diff?= /bin/diff +TOOLS_PLATFORM.dirname?= /bin/dirname +TOOLS_PLATFORM.echo?= echo # shell builtin +TOOLS_PLATFORM.egrep?= /bin/egrep +TOOLS_PLATFORM.env?= /bin/env +TOOLS_PLATFORM.expr?= /bin/expr +TOOLS_PLATFORM.false?= false # shell builtin +TOOLS_PLATFORM.fgrep?= /bin/fgrep +TOOLS_PLATFORM.file?= /bin/file +TOOLS_PLATFORM.find?= /bin/find +.if exists(/bin/flex) +TOOLS_PLATFORM.flex?= /bin/flex +TOOLS_PLATFORM.lex?= /bin/flex +.endif +TOOLS_PLATFORM.grep?= /bin/grep +TOOLS_PLATFORM.gunzip?= /bin/gunzip -f +TOOLS_PLATFORM.gzcat?= /bin/zcat +TOOLS_PLATFORM.gzip?= /bin/gzip -nf ${GZIP} +TOOLS_PLATFORM.head?= /bin/head +TOOLS_PLATFORM.hostname?= /bin/hostname +TOOLS_PLATFORM.id?= /bin/id +TOOLS_PLATFORM.install?= /bin/install +.if exists(/bin/install-info) +TOOLS_PLATFORM.install-info?= /bin/install-info +.endif +TOOLS_PLATFORM.ln?= /bin/ln +TOOLS_PLATFORM.ls?= /bin/ls +TOOLS_PLATFORM.m4?= /bin/m4 +TOOLS_PLATFORM.mail?= /bin/mail +.if exists(/bin/make) +TOOLS_PLATFORM.gmake?= /bin/make +.endif +.if exists(/bin/makeinfo) +TOOLS_PLATFORM.makeinfo?= /bin/makeinfo +.endif +TOOLS_PLATFORM.mkdir?= /bin/mkdir -p +TOOLS_PLATFORM.mktemp?= /bin/mktemp +TOOLS_PLATFORM.mv?= /bin/mv +TOOLS_PLATFORM.nice?= /bin/nice +.if exists(/bin/perl) +TOOLS_PLATFORM.perl?= /bin/perl +.endif +.if exists(/bin/patch) +TOOLS_PLATFORM.patch?= /bin/patch +.endif +.if exists(/bin/pkg-config) +TOOLS_PLATFORM.pkg-config?= /bin/pkg-config +.endif +TOOLS_PLATFORM.printf?= /bin/printf +TOOLS_PLATFORM.pwd?= /bin/pwd +TOOLS_PLATFORM.rm?= /bin/rm +TOOLS_PLATFORM.rmdir?= /bin/rmdir +TOOLS_PLATFORM.sh?= /bin/sh +TOOLS_PLATFORM.sleep?= /bin/sleep +TOOLS_PLATFORM.sort?= /bin/sort +TOOLS_PLATFORM.strip?= /bin/strip +TOOLS_PLATFORM.tail?= /bin/tail +TOOLS_PLATFORM.tee?= /bin/tee +TOOLS_PLATFORM.test?= test # shell builtin +TOOLS_PLATFORM.touch?= /bin/touch +TOOLS_PLATFORM.tr?= /bin/tr +TOOLS_PLATFORM.true?= true # shell builtin +TOOLS_PLATFORM.tsort?= /bin/tsort +TOOLS_PLATFORM.wc?= /bin/wc +TOOLS_PLATFORM.xargs?= /bin/xargs +TOOLS_PLATFORM.sed?= /bin/sed diff -r 2aaecc416cc2 -r a9d5b29099c7 net/libfetch/files/common.h --- a/net/libfetch/files/common.h Fri Jul 03 02:24:13 2009 +0900 +++ b/net/libfetch/files/common.h Sat Jul 11 13:40:56 2009 +0900 @@ -47,7 +47,7 @@ #if !defined(__sun) && !defined(__hpux) && !defined(__INTERIX) && \ !defined(__digital__) && !defined(__linux) && !defined(__MINT__) && \ - !defined(__sgi) + !defined(__sgi) && !defined(__CYGWIN__) #define HAVE_SA_LEN #endif diff -r 2aaecc416cc2 -r a9d5b29099c7 net/libfetch/files/ftp.c --- a/net/libfetch/files/ftp.c Fri Jul 03 02:24:13 2009 +0900 +++ b/net/libfetch/files/ftp.c Sat Jul 11 13:40:56 2009 +0900 @@ -134,6 +134,7 @@ isdigit((unsigned char)foo[2]) && \ foo[3] == '-') +#ifdef INET6 /* * Translate IPv4 mapped IPv6 address to IPv4 address */ @@ -159,6 +160,7 @@ sin4->sin_len = sizeof(struct sockaddr_in); #endif } +#endif /* INET6 */ /* * Get server response @@ -621,7 +623,9 @@ int mode, off_t offset, const char *flags) { struct sockaddr_storage sa; +#ifdef INET6 struct sockaddr_in6 *sin6; +#endif struct sockaddr_in *sin4; const char *bindaddr; const char *filename; @@ -653,8 +657,10 @@ l = sizeof(sa); if (getsockname(conn->sd, (struct sockaddr *)&sa, &l) == -1) goto sysouch; +#ifdef INET6 if (sa.ss_family == AF_INET6) unmappedaddr((struct sockaddr_in6 *)&sa, &l); +#endif /* INET6 */ retry_mode: @@ -678,6 +684,7 @@ if ((e = ftp_cmd(conn, "PASV")) != FTP_PASSIVE_MODE) goto ouch; break; +#ifdef INET6 case AF_INET6: if ((e = ftp_cmd(conn, "EPSV")) != FTP_EPASSIVE_MODE) { if (e == -1) @@ -687,6 +694,7 @@ goto ouch; } break; +#endif default: e = FTP_PROTOCOL_ERROR; /* XXX: error code should be prepared */ goto ouch; @@ -749,9 +757,12 @@ l = sizeof(sa); if (getpeername(conn->sd, (struct sockaddr *)&sa, &l) == -1) goto sysouch; +#ifdef INET6 if (sa.ss_family == AF_INET6) unmappedaddr((struct sockaddr_in6 *)&sa, &l); +#endif switch (sa.ss_family) { +#ifdef INET6 case AF_INET6: sin6 = (struct sockaddr_in6 *)&sa; if (e == FTP_EPASSIVE_MODE) @@ -761,6 +772,7 @@ memcpy(&sin6->sin6_port, addr + 19, 2); } break; +#endif case AF_INET: sin4 = (struct sockaddr_in *)&sa; if (e == FTP_EPASSIVE_MODE) @@ -803,10 +815,13 @@ int arg; #endif int d; +#ifdef INET6 char *ap; char hname[INET6_ADDRSTRLEN]; +#endif switch (sa.ss_family) { +#ifdef INET6 case AF_INET6: ((struct sockaddr_in6 *)&sa)->sin6_port = 0; #ifdef IPV6_PORTRANGE @@ -816,6 +831,7 @@ goto sysouch; #endif break; +#endif case AF_INET: ((struct sockaddr_in *)&sa)->sin_port = 0; #ifdef IP_PORTRANGE @@ -846,6 +862,7 @@ (a >> 8) & 0xff, a & 0xff, (p >> 8) & 0xff, p & 0xff); break; +#ifdef INET6 case AF_INET6: #define UC(b) (((int)b)&0xff) e = -1; @@ -873,6 +890,7 @@ ntohs(sin6->sin6_port) & 0xff); } break; +#endif default: e = FTP_PROTOCOL_ERROR; /* XXX: error code should be prepared */ goto ouch; @@ -989,8 +1007,10 @@ verbose = CHECK_FLAG('v'); if (CHECK_FLAG('4')) af = AF_INET; +#ifdef AF_INET6 else if (CHECK_FLAG('6')) af = AF_INET6; +#endif if (direct) purl = NULL; diff -r 2aaecc416cc2 -r a9d5b29099c7 pkgtools/bootstrap-mk-files/Makefile --- a/pkgtools/bootstrap-mk-files/Makefile Fri Jul 03 02:24:13 2009 +0900 +++ b/pkgtools/bootstrap-mk-files/Makefile Sat Jul 11 13:40:56 2009 +0900 @@ -36,9 +36,9 @@ else \ own_mk=mods/bsd.own.mk.in; \ fi; \ - ${SED} -e 's|@ROOT_GROUP@|'${REAL_ROOT_GROUP}'|g' \ - -e 's|@ROOT_USER@|'${REAL_ROOT_USER}'|g' \ - -e 's|@SYSCONFDIR@|'${PKG_SYSCONFDIR}'|g' \ + ${SED} -e "s|@ROOT_GROUP@|${REAL_ROOT_GROUP}|g" \ + -e "s|@ROOT_USER@|${REAL_ROOT_USER}|g" \ + -e "s|@SYSCONFDIR@|${PKG_SYSCONFDIR}|g" \ $$own_mk > bsd.own.mk do-install: diff -r 2aaecc416cc2 -r a9d5b29099c7 pkgtools/bootstrap-mk-files/files/mods/Cygwin.bsd.lib.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkgtools/bootstrap-mk-files/files/mods/Cygwin.bsd.lib.mk Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,524 @@ +# $NetBSD: Linux.bsd.lib.mk,v 1.3 2008/03/13 17:28:23 joerg Exp $ +# @(#)bsd.lib.mk 8.3 (Berkeley) 4/22/94 + +.if !target(__initialized__) +__initialized__: +.if exists(${.CURDIR}/../Makefile.inc) +.include "${.CURDIR}/../Makefile.inc" +.endif +.include +.include +.include +.MAIN: all +.endif + +.PHONY: checkver cleanlib libinstall +realinstall: checkver libinstall +clean cleandir: cleanlib + +.if exists(${SHLIB_VERSION_FILE}) +SHLIB_MAJOR != . ${SHLIB_VERSION_FILE} ; echo $$major +SHLIB_MINOR != . ${SHLIB_VERSION_FILE} ; echo $$minor +SHLIB_TEENY != . ${SHLIB_VERSION_FILE} ; echo $$teeny + +# Check for higher installed library versions. +.if !defined(NOCHECKVER) && !defined(NOCHECKVER_${LIB}) && \ + exists(${BSDSRCDIR}/lib/checkver) +checkver: + @(cd ${.CURDIR} && \ + sh ${BSDSRCDIR}/lib/checkver -v ${SHLIB_VERSION_FILE} \ + -d ${DESTDIR}${LIBDIR} ${LIB}) +.endif +.endif + +.if !target(checkver) +checkver: +.endif + +print-shlib-major: +.if defined(SHLIB_MAJOR) + @echo ${SHLIB_MAJOR} +.else + @false +.endif + +print-shlib-minor: +.if defined(SHLIB_MINOR) + @echo ${SHLIB_MINOR} +.else + @false +.endif + +print-shlib-teeny: +.if defined(SHLIB_TEENY) + @echo ${SHLIB_TEENY} +.else + @false +.endif + +.if defined(SHLIB_MAJOR) && !empty(SHLIB_MAJOR) +.if defined(SHLIB_MINOR) && !empty(SHLIB_MINOR) +.if defined(SHLIB_TEENY) && !empty(SHLIB_TEENY) +SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.${SHLIB_TEENY} +.else +SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR} +.endif +.else +SHLIB_FULLVERSION=${SHLIB_MAJOR} +.endif +.endif + +# add additional suffixes not exported. +# .po is used for profiling object files. +# .so is used for PIC object files. +.SUFFIXES: .out .a .ln .so .po .o .s .S .c .cc .C .m .F .f .r .y .l .cl .p .h +.SUFFIXES: .sh .m4 .m + + +# Set PICFLAGS to cc flags for producing position-independent code, +# if not already set. Includes -DPIC, if required. + +# Data-driven table using make variables to control how shared libraries +# are built for different platforms and object formats. +# OBJECT_FMT: currently either "ELF" or "a.out", from +# SHLIB_SOVERSION: version number to be compiled into a shared library +# via -soname. Usualy ${SHLIB_MAJOR} on ELF. +# NetBSD/pmax used to use ${SHLIB_MAJOR}[.${SHLIB_MINOR} +# [.${SHLIB_TEENY}]] +# SHLIB_SHFLAGS: Flags to tell ${LD} to emit shared library. +# with ELF, also set shared-lib version for ld.so. +# SHLIB_LDSTARTFILE: support .o file, call C++ file-level constructors +# SHLIB_LDENDFILE: support .o file, call C++ file-level destructors +# FPICFLAGS: flags for ${FC} to compile .[fF] files to .so objects. +# CPPICFLAGS: flags for ${CPP} to preprocess .[sS] files for ${AS} +# CPICFLAGS: flags for ${CC} to compile .[cC] files to .so objects. +# CAPICFLAGS flags for {$CC} to compiling .[Ss] files +# (usually just ${CPPPICFLAGS} ${CPICFLAGS}) +# APICFLAGS: flags for ${AS} to assemble .[sS] to .so objects. + +.if ${MACHINE_ARCH} == "alpha" + # Alpha-specific shared library flags +FPICFLAGS ?= -fPIC +CPICFLAGS ?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS ?= +.elif ${MACHINE_ARCH} == "mipsel" || ${MACHINE_ARCH} == "mipseb" + # mips-specific shared library flags + +# On mips, all libs are compiled with ABIcalls, not just sharedlibs. +MKPICLIB= no + +# so turn shlib PIC flags on for ${AS}. +AINC+=-DABICALLS +AFLAGS+= -fPIC +AS+= -KPIC + +.elif ${MACHINE_ARCH} == "vax" && ${OBJECT_FMT} == "ELF" +# On the VAX, all object are PIC by default, not just sharedlibs. +MKPICLIB= no + +.elif (${MACHINE_ARCH} == "sparc" || ${MACHINE_ARCH} == "sparc64") && \ + ${OBJECT_FMT} == "ELF" + +FPICFLAGS ?= -fPIC +CPICFLAGS ?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS ?= -KPIC + +.else + +# Platform-independent flags for NetBSD a.out shared libraries (and PowerPC) +SHLIB_LDSTARTFILE= +SHLIB_LDENDFILE= +SHLIB_SOVERSION=${SHLIB_FULLVERSION} +SHLIB_SHFLAGS= +FPICFLAGS ?= -fPIC +CPICFLAGS?= -fPIC -DPIC +CPPPICFLAGS?= -DPIC +CAPICFLAGS?= ${CPPPICFLAGS} ${CPICFLAGS} +APICFLAGS?= -k + +.endif + +MKPICLIB?= yes + +# Platform-independent linker flags for ELF shared libraries +.if ${OBJECT_FMT} == "ELF" +SHLIB_SOVERSION= ${SHLIB_MAJOR} +SHLIB_SHFLAGS= -soname lib${LIB}.so.${SHLIB_SOVERSION} +SHLIB_LDSTARTFILE?= ${DESTDIR}/usr/lib/crtbeginS.o +SHLIB_LDENDFILE?= ${DESTDIR}/usr/lib/crtendS.o +.endif + +CFLAGS+= ${COPTS} +FFLAGS+= ${FOPTS} + +.c.o: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.c} ${.IMPSRC} +.else + @echo ${COMPILE.c:Q} ${.IMPSRC} + @${COMPILE.c} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.c.po: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.c:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.c.so: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.c:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.c.ln: + ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} + +.cc.o .C.o: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.cc} ${.IMPSRC} +.else + @echo ${COMPILE.cc:Q} ${.IMPSRC} + @${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.cc.po .C.po: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.cc:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.cc.so .C.so: +.if defined(COPTS) && !empty(COPTS:M*-g*) + ${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.cc:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.o: +.if defined(FOPTS) && !empty(FOPTS:M*-g*) + ${COMPILE.f} ${.IMPSRC} +.else + @echo ${COMPILE.f:Q} ${.IMPSRC} + @${COMPILE.f} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.po: +.if defined(FOPTS) && !empty(FOPTS:M*-g*) + ${COMPILE.f} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.f:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.f} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.so: +.if defined(FOPTS) && !empty(FOPTS:M*-g*) + ${COMPILE.f} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.f:Q} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.f} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.f.ln: + ${ECHO} Skipping lint for Fortran libraries. + +.m.o: +.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*) + ${COMPILE.m} ${.IMPSRC} +.else + @echo ${COMPILE.m:Q} ${.IMPSRC} + @${COMPILE.m} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.m.po: +.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*) + ${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.m:Q} -pg ${.IMPSRC} -o ${.TARGET} + @${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.m.so: +.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*) + ${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} +.else + @echo ${COMPILE.m:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o +.endif + +.S.o .s.o: + @echo ${COMPILE.S:Q} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} + @${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.S.po .s.po: + @echo ${COMPILE.S:Q} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.S} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.S.so .s.so: + @echo ${COMPILE.S:Q} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET} + @${COMPILE.S} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o + @${LD} -r ${.TARGET}.o -o ${.TARGET} + @rm -f ${.TARGET}.o + +.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ + || ${MKLINKLIB} != "no" +_LIBS=lib${LIB}.a +.else +_LIBS= +.endif + +OBJS+=${SRCS:N*.h:N*.sh:R:S/$/.o/g} + +.if ${MKPROFILE} != "no" +_LIBS+=lib${LIB}_p.a +POBJS+=${OBJS:.o=.po} +.endif + +.if ${MKPIC} != "no" +.if ${MKPICLIB} == "no" +SOLIB=lib${LIB}.a +.else +SOLIB=lib${LIB}_pic.a +_LIBS+=${SOLIB} +SOBJS+=${OBJS:.o=.so} +.endif +.if defined(SHLIB_FULLVERSION) +_LIBS+=lib${LIB}.so.${SHLIB_FULLVERSION} +.endif +.endif + +LOBJS+=${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln} +.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) +_LIBS+=llib-l${LIB}.ln +.endif + +.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \ + || ${MKLINKLIB} != "no" +ALLOBJS=${OBJS} ${POBJS} ${SOBJS} +.else +ALLOBJS=${POBJS} ${SOBJS} +.endif +.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) +ALLOBJS+=${LOBJS} +.endif +.NOPATH: ${ALLOBJS} ${_LIBS} + +realall: ${SRCS} ${ALLOBJS:O} ${_LIBS} + +__archivebuild: .USE + @rm -f ${.TARGET} + ${AR} cq ${.TARGET} ${.ALLSRC:M*o} + ${RANLIB} ${.TARGET} + +__archiveinstall: .USE + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} -o ${LIBOWN} \ + -g ${LIBGRP} -m 600 ${.ALLSRC} ${.TARGET} + ${RANLIB} -t ${.TARGET} + chmod ${LIBMODE} ${.TARGET} + +DPSRCS+= ${SRCS:M*.l:.l=.c} ${SRCS:M*.y:.y=.c} +CLEANFILES+= ${DPSRCS} +.if defined(YHEADER) +CLEANFILES+= ${SRCS:M*.y:.y=.h} +.endif + +lib${LIB}.a:: ${OBJS} __archivebuild + @echo building standard ${LIB} library + +lib${LIB}_p.a:: ${POBJS} __archivebuild + @echo building profiled ${LIB} library + +lib${LIB}_pic.a:: ${SOBJS} __archivebuild + @echo building shared object ${LIB} library + +lib${LIB}.so.${SHLIB_FULLVERSION}: ${SOLIB} ${DPADD} \ + ${SHLIB_LDSTARTFILE} ${SHLIB_LDENDFILE} + @echo building shared ${LIB} library \(version ${SHLIB_FULLVERSION}\) + @rm -f lib${LIB}.so.${SHLIB_FULLVERSION} +.if defined(DESTDIR) + $(LD) -nostdlib -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ + ${SHLIB_LDSTARTFILE} \ + --whole-archive ${SOLIB} \ + --no-whole-archive ${LDADD} \ + -L${DESTDIR}${LIBDIR} -R${LIBDIR} \ + ${SHLIB_LDENDFILE} +.else + $(LD) -shared ${SHLIB_SHFLAGS} -o ${.TARGET} \ + ${SHLIB_LDSTARTFILE} \ + --whole-archive ${SOLIB} --no-whole-archive ${LDADD} \ + ${SHLIB_LDENDFILE} +.endif +.if ${OBJECT_FMT} == "ELF" + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION} lib${LIB}.so.${SHLIB_MAJOR}.tmp + mv -f lib${LIB}.so.${SHLIB_MAJOR}.tmp lib${LIB}.so.${SHLIB_MAJOR} + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION} lib${LIB}.so.tmp + mv -f lib${LIB}.so.tmp lib${LIB}.so +.endif + +.if !empty(LOBJS) +LLIBS?= -lc +llib-l${LIB}.ln: ${LOBJS} + @echo building llib-l${LIB}.ln + @rm -f llib-l${LIB}.ln + @${LINT} -C${LIB} ${.ALLSRC} ${LLIBS} +.endif + +cleanlib: + rm -f a.out [Ee]rrs mklog core *.core ${CLEANFILES} + rm -f lib${LIB}.a ${OBJS} + rm -f lib${LIB}_p.a ${POBJS} + rm -f lib${LIB}_pic.a lib${LIB}.so.* lib${LIB}.so ${SOBJS} + rm -f llib-l${LIB}.ln ${LOBJS} + +.if defined(SRCS) +afterdepend: .depend + @(TMP=/tmp/_depend$$$$; \ + sed -e 's/^\([^\.]*\).o[ ]*:/\1.o \1.po \1.so \1.ln:/' \ + < .depend > $$TMP; \ + mv $$TMP .depend) +.endif + +.if !target(libinstall) +# Make sure it gets defined, in case MKPIC==no && MKLINKLIB==no +libinstall:: + +.if ${MKLINKLIB} != "no" +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.a +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}.a) +${DESTDIR}${LIBDIR}/lib${LIB}.a: .MADE +.endif +${DESTDIR}${LIBDIR}/lib${LIB}.a: lib${LIB}.a __archiveinstall +.endif + +.if ${MKPROFILE} != "no" +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_p.a +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}_p.a) +${DESTDIR}${LIBDIR}/lib${LIB}_p.a: .MADE +.endif +${DESTDIR}${LIBDIR}/lib${LIB}_p.a: lib${LIB}_p.a __archiveinstall +.endif + +.if ${MKPIC} != "no" && ${MKPICINSTALL} != "no" +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}_pic.a) +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: .MADE +.endif +.if ${MKPICLIB} == "no" +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: + rm -f ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a + ln -s lib${LIB}.a ${DESTDIR}${LIBDIR}/lib${LIB}_pic.a +.else +${DESTDIR}${LIBDIR}/lib${LIB}_pic.a: lib${LIB}_pic.a __archiveinstall +.endif +.endif + +.if ${MKPIC} != "no" && defined(SHLIB_FULLVERSION) +libinstall:: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.PRECIOUS: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION} +.endif + +.if !defined(BUILD) && !make(all) && !make(lib${LIB}.so.${SHLIB_FULLVERSION}) +${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION}: .MADE +.endif +${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_FULLVERSION}: lib${LIB}.so.${SHLIB_FULLVERSION} + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} -o ${LIBOWN} \ + -g ${LIBGRP} -m ${LIBMODE} ${.ALLSRC} ${.TARGET} +.if ${OBJECT_FMT} == "a.out" && !defined(DESTDIR) + /sbin/ldconfig -m ${LIBDIR} +.endif +.if ${OBJECT_FMT} == "ELF" + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION}\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.tmp + mv -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR}.tmp\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.${SHLIB_MAJOR} +.if ${MKLINKLIB} != "no" + ln -sf lib${LIB}.so.${SHLIB_FULLVERSION}\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so.tmp + mv -f ${DESTDIR}${LIBDIR}/lib${LIB}.so.tmp\ + ${DESTDIR}${LIBDIR}/lib${LIB}.so +.endif +.endif +.endif + +.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS) +libinstall:: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.PRECIOUS: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.if !defined(UPDATE) +.PHONY: ${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln +.endif + +.if !defined(BUILD) && !make(all) && !make(llib-l${LIB}.ln) +${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: .MADE +.endif +${DESTDIR}${LINTLIBDIR}/llib-l${LIB}.ln: llib-l${LIB}.ln + ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} -o ${LIBOWN} \ + -g ${LIBGRP} -m ${LIBMODE} ${.ALLSRC} ${DESTDIR}${LINTLIBDIR} +.endif +.endif + +.include +.include +.include +.include +.include +.include +.include + +# Make sure all of the standard targets are defined, even if they do nothing. +lint regress: diff -r 2aaecc416cc2 -r a9d5b29099c7 pkgtools/bootstrap-mk-files/files/mods/Cygwin.sys.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkgtools/bootstrap-mk-files/files/mods/Cygwin.sys.mk Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,196 @@ +# $NetBSD: Interix.sys.mk,v 1.2 2006/11/11 18:24:52 jschauma Exp $ + +unix?= We run Unix +OS!= uname -s + +.SUFFIXES: .out .a .ln .o .s .S .c .cc .cpp .cxx .C .F .f .r .y .l .cl .p .h +.SUFFIXES: .sh .m4 + +.LIBS: .a + +AR?= ar +ARFLAGS?= rl +RANLIB?= ranlib + +AS?= as +AFLAGS?= +COMPILE.s?= ${CC} ${AFLAGS} -c +LINK.s?= ${CC} ${AFLAGS} ${LDFLAGS} +COMPILE.S?= ${CC} ${AFLAGS} ${CPPFLAGS} -c -traditional-cpp +LINK.S?= ${CC} ${AFLAGS} ${CPPFLAGS} ${LDFLAGS} + +# Unless told otherwise, assume GNU CC +CC?= gcc + +DBG?= -O + +CFLAGS?= -D_ALL_SOURCE ${DBG} +COMPILE.c?= ${CC} ${CFLAGS} ${CPPFLAGS} -c +LINK.c?= ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CXX?= c++ +CXXFLAGS?= ${CFLAGS} +COMPILE.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} -c +LINK.cc?= ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${LDFLAGS} + +OBJC?= ${CC} +OBJCFLAGS?= ${CFLAGS} +COMPILE.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c +LINK.m?= ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} ${LDFLAGS} + +CPP?= cpp +CPPFLAGS?= + +FC?= f77 +FFLAGS?= -O +RFLAGS?= +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} + +INSTALL?= ${LOCALBASE}/bin/install-sh + +LEX?= lex +LFLAGS?= +LEX.l?= ${LEX} ${LFLAGS} + +LD?= ld +LDFLAGS?= + +LINT?= lint +LINTFLAGS?= -chapbxzF + +# Cygwin doesn't have lorder +LORDER?= echo + +MAKE?= make + +NM?= nm + +PC?= pc +PFLAGS?= +COMPILE.p?= ${PC} ${PFLAGS} ${CPPFLAGS} -c +LINK.p?= ${PC} ${PFLAGS} ${CPPFLAGS} ${LDFLAGS} + +SHELL?= sh + +SIZE?= size + +# Cygwin's tsort doesn't have -q +TSORT?= tsort + +YACC?= yacc +YFLAGS?= +YACC.y?= ${YACC} ${YFLAGS} + +# C +.c: + ${LINK.c} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.c.o: + ${COMPILE.c} ${.IMPSRC} +.c.a: + ${COMPILE.c} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.c.ln: + ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC} + +# C++ +.cc .cpp .cxx .C: + ${LINK.cc} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.cc.o .cpp.o .cxx.o .C.o: + ${COMPILE.cc} ${.IMPSRC} +.cc.a .cpp.a .cxx.a .C.a: + ${COMPILE.cc} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Fortran/Ratfor +.f: + ${LINK.f} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.f.o: + ${COMPILE.f} ${.IMPSRC} +.f.a: + ${COMPILE.f} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.F: + ${LINK.F} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.F.o: + ${COMPILE.F} ${.IMPSRC} +.F.a: + ${COMPILE.F} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +.r: + ${LINK.r} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.r.o: + ${COMPILE.r} ${.IMPSRC} +.r.a: + ${COMPILE.r} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Pascal +.p: + ${LINK.p} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.p.o: + ${COMPILE.p} ${.IMPSRC} +.p.a: + ${COMPILE.p} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Assembly +.s: + ${LINK.s} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.s.o: + ${COMPILE.s} ${.IMPSRC} +.s.a: + ${COMPILE.s} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o +.S: + ${LINK.S} -o ${.TARGET} ${.IMPSRC} ${LDLIBS} +.S.o: + ${COMPILE.S} ${.IMPSRC} +.S.a: + ${COMPILE.S} ${.IMPSRC} + ${AR} ${ARFLAGS} $@ $*.o + rm -f $*.o + +# Lex +.l: + ${LEX.l} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} lex.yy.c ${LDLIBS} -ll + rm -f lex.yy.c +.l.c: + ${LEX.l} ${.IMPSRC} + mv lex.yy.c ${.TARGET} +.l.o: + ${LEX.l} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} lex.yy.c + rm -f lex.yy.c + +# Yacc +.y: + ${YACC.y} ${.IMPSRC} + ${LINK.c} -o ${.TARGET} y.tab.c ${LDLIBS} + rm -f y.tab.c +.y.c: + ${YACC.y} ${.IMPSRC} + mv y.tab.c ${.TARGET} +.y.o: + ${YACC.y} ${.IMPSRC} + ${COMPILE.c} -o ${.TARGET} y.tab.c + rm -f y.tab.c + +# Shell +.sh: + rm -f ${.TARGET} + cp ${.IMPSRC} ${.TARGET} diff -r 2aaecc416cc2 -r a9d5b29099c7 pkgtools/libnbcompat/files/__glob13.c --- a/pkgtools/libnbcompat/files/__glob13.c Fri Jul 03 02:24:13 2009 +0900 +++ b/pkgtools/libnbcompat/files/__glob13.c Sat Jul 11 13:40:56 2009 +0900 @@ -83,6 +83,13 @@ #include #include +#ifndef ARG_MAX +#ifdef HAVE_SYS_SYSLIMITS_H +/* for cygwin */ +#include +#endif +#endif + #if 0 #ifdef __weak_alias #ifdef __LIBC12_SOURCE__ diff -r 2aaecc416cc2 -r a9d5b29099c7 pkgtools/libnbcompat/files/configure --- a/pkgtools/libnbcompat/files/configure Fri Jul 03 02:24:13 2009 +0900 +++ b/pkgtools/libnbcompat/files/configure Sat Jul 11 13:40:56 2009 +0900 @@ -4230,6 +4230,7 @@ + for ac_header in alloca.h assert.h ctype.h dirent.h err.h errno.h fcntl.h \ fnmatch.h fts.h grp.h inttypes.h libutil.h limits.h \ machine/endian.h ndir.h netdb.h paths.h pwd.h signal.h \ @@ -4238,7 +4239,7 @@ sys/file.h sys/mkdev.h sys/ndir.h sys/param.h sys/socket.h sys/stat.h \ sys/statfs.h sys/statvfs.h sys/time.h sys/ttycom.h sys/types.h \ sys/uio.h sys/vfs.h sysexits.h termcap.h time.h tzfile.h unistd.h \ - util.h utime.h + util.h utime.h sys/syslimits.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` @@ -5992,6 +5993,78 @@ fi +{ $as_echo "$as_me:$LINENO: checking whether optarg is declared" >&5 +$as_echo_n "checking whether optarg is declared... " >&6; } +if test "${ac_cv_have_decl_optarg+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ + + #include + #include + #include + + +int +main () +{ +#ifndef optarg + (void) optarg; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_optarg=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl_optarg=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_optarg" >&5 +$as_echo "$ac_cv_have_decl_optarg" >&6; } +if test "x$ac_cv_have_decl_optarg" = x""yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_OPTARG 1 +_ACEOF + +: +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_OPTARG 0 +_ACEOF + +: +fi { $as_echo "$as_me:$LINENO: checking whether optind is declared" >&5 $as_echo_n "checking whether optind is declared... " >&6; } if test "${ac_cv_have_decl_optind+set}" = set; then @@ -12021,7 +12094,7 @@ done -if test $need_setmode = yes; then +if test "$need_setmode" = yes; then case " $LIBOBJS " in *" setmode.$ac_objext "* ) ;; *) LIBOBJS="$LIBOBJS setmode.$ac_objext" @@ -12164,6 +12237,73 @@ fi +{ $as_echo "$as_me:$LINENO: checking whether setpassent is declared" >&5 +$as_echo_n "checking whether setpassent is declared... " >&6; } +if test "${ac_cv_have_decl_setpassent+set}" = set; then + $as_echo_n "(cached) " >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +#ifndef setpassent + (void) setpassent; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" +$as_echo "$ac_try_echo") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_cv_have_decl_setpassent=yes +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_cv_have_decl_setpassent=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl_setpassent" >&5 +$as_echo "$ac_cv_have_decl_setpassent" >&6; } +if test "x$ac_cv_have_decl_setpassent" = x""yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_SETPASSENT 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_SETPASSENT 0 +_ACEOF + + +fi diff -r 2aaecc416cc2 -r a9d5b29099c7 pkgtools/libnbcompat/files/configure.ac --- a/pkgtools/libnbcompat/files/configure.ac Fri Jul 03 02:24:13 2009 +0900 +++ b/pkgtools/libnbcompat/files/configure.ac Sat Jul 11 13:40:56 2009 +0900 @@ -41,7 +41,7 @@ sys/file.h sys/mkdev.h sys/ndir.h sys/param.h sys/socket.h sys/stat.h \ sys/statfs.h sys/statvfs.h sys/time.h sys/ttycom.h sys/types.h \ sys/uio.h sys/vfs.h sysexits.h termcap.h time.h tzfile.h unistd.h \ - util.h utime.h + util.h utime.h sys/syslimits.h ]) AC_CHECK_HEADERS([sys/mount.h], [:], [:], [ AC_INCLUDES_DEFAULT @@ -142,7 +142,7 @@ [AS_HELP_STRING([--enable-bsd-getopt], [force use of BSDish getopt implementation])]) -AC_CHECK_DECLS([optind, optreset], [:], [:], [ +AC_CHECK_DECLS([optarg, optind, optreset], [:], [:], [ #include #include #include @@ -295,11 +295,11 @@ need_setmode=no AC_CHECK_FUNCS([getmode setmode], [:], [need_setmode=yes]) -if test $need_setmode = yes; then +if test "$need_setmode" = yes; then AC_LIBOBJ(setmode) fi -AC_CHECK_DECLS([endgrent, endpwent]) +AC_CHECK_DECLS([endgrent, endpwent, setpassent]) need_pwcache=no AC_CHECK_FUNCS([gid_from_group group_from_gid pwcache_groupdb \ diff -r 2aaecc416cc2 -r a9d5b29099c7 pkgtools/libnbcompat/files/nbcompat/config.h.in --- a/pkgtools/libnbcompat/files/nbcompat/config.h.in Fri Jul 03 02:24:13 2009 +0900 +++ b/pkgtools/libnbcompat/files/nbcompat/config.h.in Sat Jul 11 13:40:56 2009 +0900 @@ -32,6 +32,10 @@ don't. */ #undef HAVE_DECL_ENDPWENT +/* Define to 1 if you have the declaration of `optarg', and to 0 if you don't. + */ +#undef HAVE_DECL_OPTARG + /* Define to 1 if you have the declaration of `optind', and to 0 if you don't. */ #undef HAVE_DECL_OPTIND @@ -40,6 +44,10 @@ don't. */ #undef HAVE_DECL_OPTRESET +/* Define to 1 if you have the declaration of `setpassent', and to 0 if you + don't. */ +#undef HAVE_DECL_SETPASSENT + /* Define to 1 if you have the declaration of `snprintf', and to 0 if you don't. */ #undef HAVE_DECL_SNPRINTF @@ -444,6 +452,9 @@ /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SYSLIMITS_H + /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TIME_H diff -r 2aaecc416cc2 -r a9d5b29099c7 pkgtools/libnbcompat/files/nbcompat/pwd.h --- a/pkgtools/libnbcompat/files/nbcompat/pwd.h Fri Jul 03 02:24:13 2009 +0900 +++ b/pkgtools/libnbcompat/files/nbcompat/pwd.h Sat Jul 11 13:40:56 2009 +0900 @@ -40,7 +40,7 @@ * Declare functions that may be missing in . */ -#if !HAVE_SETPASSENT +#if !HAVE_SETPASSENT || !HAVE_DECL_SETPASSENT int setpassent(int); #endif diff -r 2aaecc416cc2 -r a9d5b29099c7 pkgtools/x11-links/Makefile --- a/pkgtools/x11-links/Makefile Fri Jul 03 02:24:13 2009 +0900 +++ b/pkgtools/x11-links/Makefile Sat Jul 11 13:40:56 2009 +0900 @@ -30,7 +30,9 @@ PKG_FAIL_REASON+= "${PKGNAME} requires X headers to be installed" .endif -.if ${OPSYS} == "IRIX" +.if ${OPSYS} == "Cygwin" +. include "cygwin.mk" +.elif ${OPSYS} == "IRIX" . include "xsgi.mk" .elif ${OPSYS} == "OSF1" . include "xdec.mk" diff -r 2aaecc416cc2 -r a9d5b29099c7 pkgtools/x11-links/cygwin.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pkgtools/x11-links/cygwin.mk Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,38 @@ +# $NetBSD$ + +#USE_BUILTIN.libX11?= yes + +.include "xfree.mk" +_FILES_LIST_XFREE:= ${FILES_LIST} + +pre-build: ${WRKDIR}/cygwin + +# +# Convert entries in files lists. +# lib/libfoo.so -> lib/libfoo.dll.a +# lib/libfoo.so.N -> lib/libfoo-N.dll.a +# lib/libfoo.so.N.M -> lib/libfoo-N.dll.a +# +# (The last one is necessary because some libraries are listed only as +# *.so.N.M in files lists) +# + +${WRKDIR}/cygwin: ${_FILES_LIST_XFREE} + ${AWK} ' \ + { sub(/@ABI@/,"") } \ + /lib\/lib.*\.so/ { \ + l = $$0; \ + sub(/\.so.*$$/, "", l); \ + sub(/lib\/lib.*\.so\.?/, ""); \ + if ($$0 == "") { \ + print l ".dll.a"; \ + } else if ($$0 ~ /^[0-9]+(\.[0-9]+)?$$/ ) { \ + v = $$0; \ + sub(/\.[0-9]+$$/, "", v); \ + print l "-" v ".dll.a" \ + } }' \ + ${_FILES_LIST_XFREE} > ${.TARGET} + + +FILES_LIST+= ${WRKDIR}/cygwin + diff -r 2aaecc416cc2 -r a9d5b29099c7 sysutils/id_cygwin/DESCR --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysutils/id_cygwin/DESCR Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,3 @@ +Cygwin's id command can't handle numeric IDs. +This is a wrapper script to work around it. + diff -r 2aaecc416cc2 -r a9d5b29099c7 sysutils/id_cygwin/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysutils/id_cygwin/Makefile Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,26 @@ +# $NetBSD: Makefile,v 1.7 2007/04/04 14:37:53 tv Exp $ +# + +DISTNAME= id_cygwin-20080925 +CATEGORIES= sysutils +MASTER_SITES= # empty +DISTFILES= # empty + +MAINTAINER= pkgsrc@NetBSD.org +COMMENT= Wrapper for Cygwin's id command + +ONLY_FOR_PLATFORM= Cygwin-*-* + +PKG_INSTALLATION_TYPES= overwrite pkgviews + +NO_CHECKSUM= yes +NO_CONFIGURE= yes +NO_BUILD= yes +PKG_PRESERVE= yes + +INSTALLATION_DIRS= bin + +do-install: + ${INSTALL_SCRIPT} ${FILESDIR}/id_cygwin.sh ${PREFIX}/bin/id + +.include "../../mk/bsd.pkg.mk" diff -r 2aaecc416cc2 -r a9d5b29099c7 sysutils/id_cygwin/PLIST --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysutils/id_cygwin/PLIST Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,2 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2004/04/27 01:45:22 tv Exp $ +bin/id diff -r 2aaecc416cc2 -r a9d5b29099c7 sysutils/id_cygwin/files/id_cygwin.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysutils/id_cygwin/files/id_cygwin.sh Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,30 @@ +#!/bin/sh + +# Cygwin's id command can't handle numeric IDs. +# This is a wrapper script to work around it. + +get_user_name () { + awk -F: '$3 == '"$1"' {print $1; exit}' /etc/passwd +} + + +newargs= +sep= +for arg +do + case "$arg" in + [0-9]*) + ans="$(get_user_name "$arg")" + if [ -z "$ans" ]; then + echo >&2 "Unknown user $arg" + exit 1 + fi + arg="$ans" + esac + newarg="$newarg$sep$arg" + sep=: +done + +IFS=: +set -- $newarg +/bin/id "$@" diff -r 2aaecc416cc2 -r a9d5b29099c7 sysutils/su_cygwin/DESCR --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysutils/su_cygwin/DESCR Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,7 @@ +SU command doesn't work on Cygwin. + +see http://....TBD + +This script simulates su using ssh. You need to enable sshd to make this work. + + diff -r 2aaecc416cc2 -r a9d5b29099c7 sysutils/su_cygwin/MESSAGE --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysutils/su_cygwin/MESSAGE Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,3 @@ +This program requires SSH server running on your machine. +To start SSH server, execute following command on cygwin terminal. +# cygrunsrv -S sshd diff -r 2aaecc416cc2 -r a9d5b29099c7 sysutils/su_cygwin/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysutils/su_cygwin/Makefile Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,25 @@ +# $NetBSD: Makefile,v 1.7 2007/04/04 14:37:53 tv Exp $ +# + +DISTNAME= su_cygwin-20081017 +CATEGORIES= sysutils +MASTER_SITES= # empty +DISTFILES= # empty + +MAINTAINER= pkgsrc@NetBSD.org +COMMENT= Simulates su by means of ssh + +ONLY_FOR_PLATFORM= Cygwin-*-* + +PKG_INSTALLATION_TYPES= overwrite pkgviews + +NO_CHECKSUM= yes +NO_CONFIGURE= yes +NO_BUILD= yes +PKG_PRESERVE= yes + + +do-install: + ${INSTALL_SCRIPT} ${FILESDIR}/su_cygwin.sh ${PREFIX}/bin/su + +.include "../../mk/bsd.pkg.mk" diff -r 2aaecc416cc2 -r a9d5b29099c7 sysutils/su_cygwin/PLIST --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysutils/su_cygwin/PLIST Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,2 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2004/04/27 01:45:22 tv Exp $ +bin/su diff -r 2aaecc416cc2 -r a9d5b29099c7 sysutils/su_cygwin/files/su_cygwin.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysutils/su_cygwin/files/su_cygwin.sh Sat Jul 11 13:40:56 2009 +0900 @@ -0,0 +1,101 @@ +#!/bin/sh + +# +# Simulate SU command by SSH +# + +login=NO +currentuser="$(/bin/id -u -n)" + +while getopts "l" opt; do + case $opt in + l) login=YES;; + *) + echo >&2 "$0: Unknown option $opt" + exit 1 + esac +done + +shift $[$OPTIND - 1] + +if [ X"$1" = X- ]; then + login=YES + shift +fi + +if [ $# -le 0 ]; then + user="${CYGWIN_ROOT_USER-Administrator}" +else + user="$1"; + shift +fi + +if [ -n "$command" ]; then + set -- "$command" "$@" +fi + + +pwd=$(/bin/pwd) + +# XXX: get target user's login shell +shell=/bin/sh +tmpscript=/tmp/su_script.$$ +umask=$(umask) +umask 022 + +trap "rm -f $tmpscript" 0 INT QUIT TERM + +cat >$tmpscript <> $tmpscript <> $tmpscript <> $tmpscript +if [ $login = YES ]; then + echo -n "-l " >> $tmpscript +fi + +if [ $# -le 0 ]; then + echo -n "-i " >> $tmpscript + sshopt='-t' +else + sshopt='' + for a + do + b=$(echo "$a" | sed 's/"/\\"/g') + echo -n "\"$b\" " >> $tmpscript + done +fi +echo >> $tmpscript + +chmod +x $tmpscript +ssh $sshopt "$user"@localhost $tmpscript