3 # Configure script for wine
15 # Ask question 'str' and set 'var' to reply (defaulting to 'def' on CR)
24 echo -n "$str [$def]? "
25 input
=`head -1` # When using read, user must double all backslashes
32 echo -n 'Build Wine as emulator or library (E/L) [E]? '
34 if [ "$input" = 'l' -o "$input" = 'L' ]
36 WINELIB
='#define WINELIB -DWINELIB'
37 ALLDEFINES
="$ALLDEFINES -DWINELIB"
41 echo -n 'Short filenames (Y/N) [N]? '
43 if [ "$input" = 'y' -o "$input" = 'Y' ]
45 SHORTNAMES
='#define ShortNames -DSHORTNAMES'
46 ALLDEFINES
="$ALLDEFINES -DSHORTNAMES"
50 echo -n 'Use the XPM library (Y/N) [Y]? '
52 if [ "$input" = 'n' -o "$input" = 'N' ]
56 ALLDEFINES
="$ALLDEFINES -DUSE_XPM"
59 LANGS
=`echo En rc/sysres_*.rc | sed -e 's/rc\/sysres_//g' -e 's/\.rc//g' -e 's/ /\//g;'`
60 while expr "$LANGS" : ".*$LANGUAGE" = 0 > /dev
/null
62 prompt
"Language ($LANGS)" LANGUAGE En
63 if expr "$LANGS" : ".*$LANGUAGE" = 0 > /dev
/null
65 echo "\"$LANGUAGE\" is not a supported language."
68 ALLDEFINES
="$ALLDEFINES -ALANG\($LANGUAGE\)"
70 if [ "`(domainname)`" = 'amscons.com' ]
73 echo -n 'New build program (Y/N) [N]? '
75 if [ "$input" = 'y' -o "$input" = 'Y' ]
77 NEWBUILD
='#define NewBuild -DNEWBUILD'
78 ALLDEFINES
="$ALLDEFINES -DNEWBUILD"
82 prompt
"Global configfile name" WINE_CONFIGFILE
/usr
/local
/etc
/wine.conf
84 if [ -r $WINE_CONFIGFILE ]
92 echo -n "Do you want to make a config file now (Y/N) [$DEFAULT_ANS]? "
98 if [ "$input" = 'y' -o "$input" = 'Y' ]
100 if [ -r $WINE_CONFIGFILE ]
102 echo "Backing up the old file to ${WINE_CONFIGFILE}.old."
103 if cp $WINE_CONFIGFILE ${WINE_CONFIGFILE}.old
106 echo "Error while creating backup file. Fix it and run Configure again"
111 CF_A
=`mount | awk '/^\/dev\/fd/ {print $3;exit} END {print "/a"}'`
112 prompt
"Which directory do you want to use as A:" CF_A
$CF_A
113 CF_C
=`awk '{if ($3=="msdos") {print $2;exit}} END {print "/c"}' /etc/fstab`
114 prompt
"Which directory do you want to use as C:" CF_C
$CF_C
115 prompt
"Where is the Windows directory" CF_Windows
'c:\windows'
116 prompt
"Where is the System directory" CF_System
'c:\windows\system'
117 if [ -r "$CF_C/autoexec.bat" ]
119 CF_Temp
=`tr A-Z a-z < "$CF_C/autoexec.batX" | sed -n 's/^ *set *temp= *\(c:.*[a-z]\).*/\1/p'`
125 prompt
"Where should Windows apps store temp files" CF_Temp
$CF_Temp
126 prompt
"Which path should be used to find progs/DLL's" CF_Path
"$CF_Windows;$CF_System"
127 prompt
"Where is sysres.dll" CF_SystemResources
`pwd`/sysres.dll
128 prompt
"Where is COM1" CF_Com1
'/dev/cua0'
129 prompt
"Where is COM2" CF_Com2
'/dev/cua1'
130 prompt
"Where is LPT1" CF_Lpt1
'/dev/lp0'
131 prompt
"Log messages to which file (CON = stdout)" CF_File
'CON'
134 sed -n -e 's/^ *\"\(WM_[A-Z0-9]*\)\".*/\1/p' < misc
/spy.c | \
135 sort |
pr -ta4w83 |
sed '1 i\
136 Here is the list of messages:\
140 prompt
"Exclude which messages from the log" CF_Exclude
'WM_SIZE;WM_TIMER'
142 cat > $WINE_CONFIGFILE << EOF
152 SystemResources=$CF_SystemResources
156 mssansserif=*-helvetica
178 The config file '"$WINE_CONFIGFILE"' now looks like this:\
180 ' < $WINE_CONFIGFILE |
$PAGER
183 echo -n "Do you want to edit it using $EDITOR (Y/N) [N]? "
185 if [ "$input" = 'y' -o "$input" = 'Y' ]
187 $EDITOR $WINE_CONFIGFILE
190 if [ ! -r $WINE_CONFIGFILE ]
192 echo 'Ok, remember to make it yourself later.'
196 if grep -s seg_not_present
/usr
/include
/linux
/ldt.h
2> /dev
/null
198 ALLDEFINES
="$ALLDEFINES -DNEW_LDT_STRUCT"
201 cat > autoconf.h
<< EOF
202 /* autoconf.h generated automatically. Run Configure. */
207 #define WINE_INI_GLOBAL "$WINE_CONFIGFILE"
208 #define AutoDefines $ALLDEFINES
212 echo "Creating Makefiles. This may take a while."
217 WARNING: The exit status of the command 'xmkmf -a' indicates an error.
218 Maybe the Wine directory is incomplete, or Imake (see 'man xmkmf imake')
219 is incorrectly configured? In the latter case, it might be easiest to
220 reinstall X11 to get a new copy of Imake.
224 if [ 0 -lt `find . -name "*.rej" -print | wc -l` ]
228 WARNING: You have some files named '*.rej', which usually indicates
229 rejected patch files. Maybe you tried to upgrade Wine with 'patch',
230 and that some of the patches failed? If something doesn't work, this
231 might be the reason. See 'man patch' (especially the '-p' option).
233 List of "*.rej" files:
236 find .
-name "*.rej" -print
242 echo "Configure finished. Do 'make' to compile Wine."
245 echo "*** There was a problem with 'imake': the main Makefile has not be created."