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) [N]? '
52 if [ "$input" = 'y' -o "$input" = 'Y' ]
55 ALLDEFINES
="$ALLDEFINES -DUSE_XPM"
58 LANGS
=`echo En rc/sysres_*.rc | sed -e 's/rc\/sysres_//g' -e 's/\.rc//g' -e 's/ /\//g;'`
59 while expr "$LANGS" : ".*$LANG" == 0 > /dev
/null
61 prompt
"Language ($LANGS)" LANG En
62 if expr "$LANGS" : ".*$LANG" == 0 > /dev
/null
64 echo "\"$LANG\" is not a supported language."
67 ALLDEFINES
="$ALLDEFINES -ALANG\($LANG\)"
69 if [ "`(domainname)`" = 'amscons.com' ]
72 echo -n 'New build program (Y/N) [N]? '
74 if [ "$input" = 'y' -o "$input" = 'Y' ]
76 NEWBUILD
='#define NewBuild -DNEWBUILD'
77 ALLDEFINES
="$ALLDEFINES -DNEWBUILD"
81 prompt
"Global configfile name" WINE_CONFIGFILE
/usr
/local
/etc
/wine.conf
83 if [ -r $WINE_CONFIGFILE ]
91 echo -n "Do you want to make a config file now (Y/N) [$DEFAULT_ANS]? "
97 if [ "$input" = 'y' -o "$input" = 'Y' ]
99 if [ -r $WINE_CONFIGFILE ]
101 echo "Backing up the old file to ${WINE_CONFIGFILE}.old."
102 if cp $WINE_CONFIGFILE ${WINE_CONFIGFILE}.old
105 echo "Error while creating backup file. Fix it and run Configure again"
110 CF_A
=`mount | awk '/^\/dev\/fd/ {print $3;exit} END {print "/a"}'`
111 prompt
"Which directory do you want to use as A:" CF_A
$CF_A
112 CF_C
=`awk '{if ($3=="msdos") {print $2;exit}} END {print "/c"}' /etc/fstab`
113 prompt
"Which directory do you want to use as C:" CF_C
$CF_C
114 prompt
"Where is the Windows directory" CF_Windows
'c:\windows'
115 prompt
"Where is the System directory" CF_System
'c:\windows\system'
116 if [ -r "$CF_C/autoexec.bat" ]
118 CF_Temp
=`tr A-Z a-z < "$CF_C/autoexec.batX" | sed -n 's/^ *set *temp= *\(c:.*[a-z]\).*/\1/p'`
124 prompt
"Where should Windows apps store temp files" CF_Temp
$CF_Temp
125 prompt
"Which path should be used to find progs/DLL's" CF_Path
"$CF_Windows;$CF_System"
126 prompt
"Where is sysres.dll" CF_SystemResources
`pwd`/sysres.dll
127 prompt
"Where is COM1" CF_Com1
'/dev/cua0'
128 prompt
"Where is COM2" CF_Com2
'/dev/cua1'
129 prompt
"Where is LPT1" CF_Lpt1
'/dev/lp0'
130 prompt
"Log messages to which file (CON = stdout)" CF_File
'CON'
133 sed -n -e 's/^ *\"\(WM_[A-Z0-9]*\)\".*/\1/p' < misc
/spy.c | \
134 sort |
pr -ta4w83 |
sed '1 i\
135 Here is the list of messages:\
139 prompt
"Exclude which messages from the log" CF_Exclude
'WM_SIZE;WM_TIMER'
141 cat > $WINE_CONFIGFILE << EOF
151 SystemResources=$CF_SystemResources
155 mssansserif=*-helvetica
177 The config file '"$WINE_CONFIGFILE"' now looks like this:\
179 ' < $WINE_CONFIGFILE |
$PAGER
182 echo -n "Do you want to edit it using $EDITOR (Y/N) [N]? "
184 if [ "$input" = 'y' -o "$input" = 'Y' ]
186 $EDITOR $WINE_CONFIGFILE
189 if [ ! -r $WINE_CONFIGFILE ]
191 echo 'Ok, remember to make it yourself later.'
195 if grep -s seg_not_present
/usr
/include
/linux
/ldt.h
2> /dev
/null
197 ALLDEFINES
="$ALLDEFINES -DNEW_LDT_STRUCT"
200 cat > autoconf.h
<< EOF
201 /* autoconf.h generated automatically. Run Configure. */
206 #define WINE_INI_GLOBAL "$WINE_CONFIGFILE"
207 #define AutoDefines $ALLDEFINES
211 echo "Creating Makefiles. This may take a while."
214 if [ 0 -lt `find . -name "*.rej" -print | wc -l` ]
218 WARNING: You have some files named "*.rej". Rejected patch files?
219 Maybe you tried to upgrade Wine by diff-files, and that patch failed.
220 If something doesn't work, this might be the reason. See "man patch".
222 List of "*.rej" files:
225 find .
-name "*.rej" -print
230 echo "Configure finished. Do 'make' to compile Wine."