mirror of
https://git.FreeBSD.org/ports.git
synced 2024-10-30 21:49:25 +00:00
c779ad377c
from ${WRKDIR}/.config to ${WRKDIR}/config . Conditionalize the interactivity of the configure script on the existence of ${FILESDIR}/config . If the file exists, copy it to ${WRKDIR}/config and do not ask questions.
406 lines
11 KiB
Bash
406 lines
11 KiB
Bash
#!/bin/sh
|
|
|
|
yesno () {
|
|
answ=X;
|
|
while [ $answ = X ]; do
|
|
echo -n "$1 [YES] "
|
|
read answ
|
|
if [ X$answ = X ]; then answ="YES"; fi
|
|
case $answ in
|
|
y|yes|Y|YES) answ=YES;;
|
|
n|no|N|NO) answ=NO;;
|
|
*) echo invalid answer
|
|
answ=X
|
|
;;
|
|
esac
|
|
done
|
|
}
|
|
noyes() {
|
|
answ=X;
|
|
while [ $answ = X ]; do
|
|
echo -n "$1 [NO] "
|
|
read answ
|
|
if [ X$answ = X ]; then answ="NO"; fi
|
|
case $answ in
|
|
y|yes|Y|YES) answ=YES;;
|
|
n|no|N|NO) answ=NO;;
|
|
*) echo invalid answer
|
|
answ=X
|
|
;;
|
|
esac
|
|
done
|
|
}
|
|
F=$WRKDIR/config
|
|
WH=$WRKDIR/xc/lib/Xdmcp/Wraphelp.c
|
|
configure () {
|
|
rm -f $F
|
|
|
|
# Tk detection
|
|
tkversion=
|
|
for v in 42 80 81 82 83 42jp 80jp; do
|
|
if [ -f /usr/local/lib/libtk$v.a ]; then
|
|
tkversion=$v
|
|
case $tkversion in
|
|
42)
|
|
tclversion=76
|
|
tclLversion=7.6
|
|
tkLversion=4.2
|
|
;;
|
|
80)
|
|
tclversion=80
|
|
tclLversion=8.0
|
|
tkLversion=8.0
|
|
;;
|
|
42jp)
|
|
tclversion=76jp
|
|
tclLversion=7.6jp
|
|
tkLversion=4.2jp
|
|
;;
|
|
80jp)
|
|
tclversion=80jp
|
|
tclLversion=8.0jp
|
|
tkLversion=8.0jp
|
|
;;
|
|
81)
|
|
tclversion=81
|
|
tclLversion=8.1
|
|
tkLversion=8.1
|
|
;;
|
|
82)
|
|
tclversion=82
|
|
tclLversion=8.2
|
|
tkLversion=8.2
|
|
;;
|
|
83)
|
|
tclversion=83
|
|
tclLversion=8.3
|
|
tkLversion=8.3
|
|
;;
|
|
esac
|
|
fi
|
|
done
|
|
if [ X$tkversion != X ]; then
|
|
case $tkversion in
|
|
*jp)
|
|
echo "Using Japanized tk-$jptkLversion"
|
|
if [ X"${MACHINE}" = X"pc98" ]; then
|
|
echo "#define HasJpTk YES" >>$F
|
|
echo "#define JpTkLibDir /usr/local/lib" >>$F
|
|
echo "#define JpTkIncDir /usr/local/include/tk$tkLversion" >>$F
|
|
echo "#define JpTkLibName tk$tkversion" >>$F
|
|
echo "#define HasJpTcl YES" >>$F
|
|
echo "#define JpTclLibDir /usr/local/lib" >>$F
|
|
echo "#define JpTclIncDir /usr/local/include/tcl$tclLversion" >>$F
|
|
echo "#define JpTclLibName tcl$tclversion" >>$F
|
|
else
|
|
echo "#define HasTk YES" >>$F
|
|
echo "#define TkLibDir /usr/local/lib" >>$F
|
|
echo "#define TkIncDir /usr/local/include/tk$tkLversion" >>$F
|
|
echo "#define TkLibName tk$tkversion" >>$F
|
|
echo "#define HasTcl YES" >>$F
|
|
echo "#define TclLibDir /usr/local/lib" >>$F
|
|
echo "#define TclIncDir /usr/local/include/tcl$tclLversion" >>$F
|
|
echo "#define TclLibName tcl$tclversion" >>$F
|
|
fi
|
|
;;
|
|
*)
|
|
echo "Using tk-$tkLversion"
|
|
echo "#define HasTk YES" >>$F
|
|
echo "#define TkLibDir /usr/local/lib" >>$F
|
|
echo "#define TkIncDir /usr/local/include/tk$tkLversion" >>$F
|
|
echo "#define TkLibName tk$tkversion" >>$F
|
|
echo "#define HasTcl YES" >>$F
|
|
echo "#define TclLibDir /usr/local/lib" >>$F
|
|
echo "#define TclIncDir /usr/local/include/tcl$tclLversion" >>$F
|
|
echo "#define TclLibName tcl$tclversion" >>$F
|
|
;;
|
|
esac
|
|
echo "#define BuildXF86Setup YES" >>$F
|
|
else
|
|
cat <<EOF
|
|
*** I don't see the static library for tk version $tkversion in /usr/local/lib.
|
|
*** XF86Setup will not be installed. If you want to build this program
|
|
*** install tk 4.2 or 8.x first.
|
|
|
|
EOF
|
|
fi
|
|
|
|
cat <<END
|
|
Which servers do you wish to build, you can save a lot of disk space
|
|
by only compiling the server you will be using. It will also save you
|
|
considerable compile time.
|
|
END
|
|
if [ X$tkversion != X ]; then
|
|
echo "*** If you want to use XF86Setup to set the INITIAL configuration,"
|
|
echo "*** then you must build the VGA server"
|
|
fi
|
|
# force the compilation of the EGC server for pc98.
|
|
if [ X"${MACHINE}" = X"pc98" ]; then
|
|
echo "#define BuildPC98Servers YES" >>$F
|
|
echo "#undef XF98EGCServer" >>$F
|
|
echo "#define XF98EGCServer YES" >>$F
|
|
servers="GA968 GANBWAP NEC480 NKVNEC WABS WABEP WSNA TGUI MGA SVGA NECS3 PWSKB PWLB"
|
|
selected=EGC
|
|
for i in $servers; do
|
|
yesno "Do you want to build the $i server?"
|
|
if [ $answ = YES ]; then selected="$selected $i"; fi
|
|
echo "#undef XF98${i}Server" >>$F
|
|
echo "#define XF98${i}Server $answ" >>$F
|
|
done
|
|
echo "#undef XF86SVGAServer" >>$F
|
|
echo "#define XF86SVGAServer NO" >>$F
|
|
servers="VGA16 VGA16Dual Mono MonoDual S3 S3V I8514 Mach8 Mach32 Mach64 P9000 AGX W32 I128 GLINT"
|
|
for i in $servers; do
|
|
echo "#undef XF86${i}Server" >>$F
|
|
echo "#define XF86${i}Server NO" >>$F
|
|
done
|
|
elif [ X"${MACHINE}" = X"alpha" ]; then
|
|
# force the compilation of the SVGA server.
|
|
echo "#undef XF86SVGAServer" >>$F
|
|
echo "#define XF86SVGAServer YES" >>$F
|
|
servers="Mono S3 S3V Mach64 P9000 I128 GLINT TGA"
|
|
selected=SVGA
|
|
for i in $servers; do
|
|
yesno "Do you want to build the $i server?"
|
|
if [ $answ = YES ]; then selected="$selected $i"; fi
|
|
echo "#undef XF86${i}Server" >>$F
|
|
echo "#define XF86${i}Server $answ" >>$F
|
|
done
|
|
else
|
|
# force the compilation of the SVGA server.
|
|
echo "#undef XF86SVGAServer" >>$F
|
|
echo "#define XF86SVGAServer YES" >>$F
|
|
servers="VGA16 VGA16Dual Mono MonoDual S3 S3V I8514 Mach8 Mach32 Mach64 P9000 AGX W32 I128 GLINT"
|
|
selected=SVGA
|
|
for i in $servers; do
|
|
yesno "Do you want to build the $i server?"
|
|
if [ $answ = YES ]; then selected="$selected $i"; fi
|
|
echo "#undef XF86${i}Server" >>$F
|
|
echo "#define XF86${i}Server $answ" >>$F
|
|
done
|
|
fi
|
|
|
|
echo
|
|
ok=0
|
|
while [ $ok != 1 ]; do
|
|
echo -n "default server to install. [none] "
|
|
read answ
|
|
if [ X$answ = X ]; then answ=none; ok=1; fi
|
|
if [ $answ != none ]; then
|
|
for i in $selected; do if [ $i = $answ ]; then
|
|
ok=1
|
|
if [ X"${MACHINE}" = X"pc98" ]; then
|
|
echo "#define ServerToInstall XF98_$answ" >>$F
|
|
else
|
|
echo "#define ServerToInstall XF86_$answ" >>$F
|
|
fi
|
|
fi
|
|
done
|
|
fi
|
|
if [ $ok = 0 ]; then echo you must choose a server among $selected; fi
|
|
done
|
|
echo
|
|
yesno "Do you want to build Xvfb?"
|
|
echo "#define XVirtualFramebufferServer $answ" >>$F
|
|
|
|
if [ X"${MACHINE}" != X"pc98" ]; then
|
|
if [ X"${MACHINE}" = X"alpha" ]; then
|
|
cat >> $F <<END
|
|
#define XF86SvgaDrivers nv mga s3v generic
|
|
|
|
#define XF86MonoDrivers hgc1280 sigma apollo hercules
|
|
END
|
|
else
|
|
cat >> $F <<END
|
|
#define XF86SvgaDrivers nv et4000 et3000 pvga1 gvga r128 ati sis tvga8900 \
|
|
cirrus ncr77c22 compaq mga oak al2101 ali \
|
|
cl64xx video7 ark mx realtek apm s3_savage s3v \
|
|
s3_svga neo chips cyrix rendition p9x00 \
|
|
spc8110 i740 i810 tdfx smi generic
|
|
|
|
#define XF86Vga16Drivers et4000 et3000 ncr77c22 ati sis tvga8900 oak \
|
|
cl64xx generic
|
|
|
|
#define XF86Vga2Drivers et4000 et3000 pvga1 gvga ati sis tvga8900 \
|
|
cirrus ncr77c22 oak cl64xx generic
|
|
|
|
#define XF86MonoDrivers hgc1280 sigma apollo hercules
|
|
|
|
#define XF86W32Drivers et4000w32
|
|
|
|
END
|
|
fi
|
|
fi
|
|
|
|
|
|
cat <<END
|
|
|
|
|
|
Do you want to install the default system config files, this will overwrite
|
|
and files that you may be currently using. This would only be required
|
|
on a first time build.
|
|
END
|
|
yesno "Install xdm config?"
|
|
if [ $answ = YES ]; then
|
|
echo "#define InstallXdmConfig $answ" >> $F
|
|
fi
|
|
yesno "Install xinit config?"
|
|
if [ $answ = YES ]; then
|
|
echo "#define InstallXinitConfig $answ" >> $F
|
|
fi
|
|
yesno "Install xfs config?"
|
|
if [ $answ = YES ]; then
|
|
echo "#define InstallFSConfig $answ" >> $F
|
|
fi
|
|
|
|
yesno "Do you want to include support for the FontServer?"
|
|
echo "#undef BuildFontServer" >>$F
|
|
echo "#define BuildFontServer $answ" >>$F
|
|
echo "#undef InstallFSConfig" >>$F
|
|
echo "#define InstallFSConfig $answ" >>$F
|
|
|
|
cat <<'END'
|
|
Do you want to Build Fonts (Usually you only want to build and install
|
|
fonts once, if this is a first time install you will want to build the
|
|
fonts)
|
|
END
|
|
yesno "Build fonts?"
|
|
if [ $answ = NO ]; then
|
|
echo "#define BuildFonts NO" >> $F
|
|
fi
|
|
yesno "Build the servers with Extended input devices?"
|
|
if [ $answ = NO ]; then
|
|
echo "#undef BuildXInputExt" >> $F
|
|
echo "#define BuildXInputExt NO" >> $F
|
|
else
|
|
if [ X${MACHINE} != X"alpha" ]; then
|
|
echo "#define JoystickSupport YES" >> $F
|
|
fi
|
|
fi
|
|
|
|
yesno "Build PEX?"
|
|
if [ $answ = NO ]; then
|
|
echo "#define BuildPexExt NO" >> $F
|
|
fi
|
|
yesno "Build XIE?"
|
|
if [ $answ = NO ]; then
|
|
echo "#define BuildXIE NO" >> $F
|
|
fi
|
|
echo
|
|
|
|
yesno "Build static libraries in addition to shared libraries?"
|
|
if [ $answ = YES ]; then
|
|
echo "#define ForceNormalLib YES" >> $F
|
|
fi
|
|
# ELF detection
|
|
if [ `sysctl -n kern.osreldate` -ge 300004 -a X`objformat` = Xelf ]; then
|
|
ELF=yes
|
|
cat <<'END'
|
|
|
|
Some programs still require a.out X libraries. Most noteable amongst
|
|
these is Nestcape, but it is reported to work best with older X libraries.
|
|
You can build a.out libraries here, using the lastest sources and
|
|
compiler, or you can use the XFree86-aoutlibs port, which installs older
|
|
a.out compatibility libraries.
|
|
|
|
If you decide to build the libraries here they will not be uninstalled by
|
|
this port, and they will be overwritten by the XFree86-aoutlibs port, if
|
|
for some reason you install it.
|
|
|
|
END
|
|
noyes "Do you want to build and install a.out compatibility libraries?"
|
|
if [ $answ = YES ]; then
|
|
echo "#define BuildAoutLibraries YES" >> $F
|
|
fi
|
|
else
|
|
ELF=no
|
|
fi
|
|
|
|
if [ ${OSVERSION} -ge 300000 ]; then
|
|
cat <<'END'
|
|
|
|
FreeBSD-3.x has support for Secure RPC.
|
|
|
|
While this scheme is not used for general purpose encryption,
|
|
some countries restrict the use of strong cryptography.
|
|
|
|
END
|
|
yesno "Build with Secure RPC?"
|
|
if [ $answ = YES ]; then
|
|
echo "#define HasSecureRPC YES" >> $F
|
|
fi
|
|
fi
|
|
cat <<'END'
|
|
|
|
MIT supplies an authentication mechanism that relies upon DES, this is
|
|
called XDM-AUTHORIZATION-1.
|
|
|
|
Source code for this authentication mechanism may not be exported from
|
|
the United States, however, there are compatible replacements for this
|
|
mechanism available elsewhere. Also, while this scheme is not used for
|
|
general purpose encryption, some countries restrict the use of strong
|
|
cryptography.
|
|
|
|
If you have aquired a copy of "Wraphelp.c" and it currently resides in
|
|
the same location as the XFree86 source or in the ports "files"
|
|
subdirectory, it will be copied into the right place in the X11 source
|
|
distribution and support for this feature will be enabled if you answer
|
|
YES to the following question.
|
|
|
|
If you do not have a copy of this file, even if you answer YES to this
|
|
question, support will not be enabled. If you wish to change this later,
|
|
the option controling this is contained the file xc/config/cf/xf86site.def.
|
|
|
|
END
|
|
yesno "Do you want to enable XDM-AUTHORIZATION-1 support?"
|
|
cpwh=NO
|
|
if [ $answ = YES ]; then
|
|
if [ -f $WH ] ; then
|
|
echo "==> $WH found in source distribution."
|
|
elif [ -f $DISTDIR/xc/Wraphelp.c ] ; then
|
|
echo "==> Wraphelp.c found in DISTDIR directory, copying to source tree."
|
|
cpwh=$DISTDIR/xc/Wraphelp.c
|
|
elif [ -f $FILESDIR/Wraphelp.c ] ; then
|
|
echo "==> Wraphelp.c found in files directory, copying to source tree."
|
|
cpwh=$FILESDIR/Wraphelp.c
|
|
else
|
|
echo "==> Wraphelp.c not found, DES support NOT enabled."
|
|
cpwh=NO
|
|
fi
|
|
fi
|
|
if [ $cpwh != NO ]; then
|
|
echo "#define HasXdmAuth $answ" >> $F
|
|
fi
|
|
|
|
echo
|
|
yesno "Do you want to compile with PAM support?"
|
|
if [ $answ = YES ]; then
|
|
echo "#define HasPam YES" >> $F
|
|
else
|
|
echo "#define HasPam NO" >> $F
|
|
fi
|
|
|
|
echo
|
|
echo
|
|
echo "End of configuration questions. No more user input required"
|
|
echo
|
|
}
|
|
|
|
if [ ! -r $F ]; then
|
|
configure
|
|
elif grep 'HasXdmAuth.*YES' $F >/dev/null; then
|
|
for i in $DISTDIR/xc $FILESDIR; do
|
|
if [ -r $i/Wraphelp.c ]; then
|
|
cpwh=$i/Wraphelp.c
|
|
fi
|
|
done
|
|
fi
|
|
|
|
if [ X$cpwh != XNO ]; then
|
|
tr -d '\r' < $cpwh > $WH
|
|
fi
|
|
|
|
cat $F >> $WRKDIR/xc/config/cf/xf86site.def
|
|
|
|
exit 0
|