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."
216 WARNING: The exit status of the command 'xmkmf -a' indicates an error.
217 Maybe the Wine directory is incomplete, or Imake (see 'man xmkmf imake')
218 is incorrectly configured? In the latter case, it might be easiest to
219 reinstall X11 to get a new copy of Imake.
223 if [ 0 -lt `find . -name "*.rej" -print | wc -l` ]
227 WARNING: You have some files named '*.rej', which usually indicates
228 rejected patch files. Maybe you tried to upgrade Wine with 'patch',
229 and that some of the patches failed? If something doesn't work, this
230 might be the reason. See 'man patch' (especially the '-p' option).
232 List of "*.rej" files:
235 find .
-name "*.rej" -print
241 echo "Configure finished. Do 'make' to compile Wine."
244 echo "*** There was a problem with 'imake': the main Makefile has not be created."