3 # Configure script for wine
12 # Ask question 'str' and set 'var' to reply (defaulting to 'def' on CR)
21 echo -n "$str [$def]? "
22 input
=`head -1` # When using read, user must double all backslashes
30 echo Read the RELEASE-NOTES
for an explanation of the various flags
33 echo -n 'Build Wine as emulator or library (E/L) [E]? '
35 if [ "$input" = 'l' -o "$input" = 'L' ]
37 WINELIB
='#define WINELIB -DWINELIB'
38 ALLDEFINES
="$ALLDEFINES -DWINELIB"
41 LANGS
=`echo En rc/sysres_*.rc | sed -e 's/rc\/sysres_//g' -e 's/\.rc//g' -e 's/ /\//g;'`
42 while expr "$LANGS" : ".*$LANGUAGE" = 0 > /dev
/null
44 prompt
"Language ($LANGS)" LANGUAGE En
45 if expr "$LANGS" : ".*$LANGUAGE" = 0 > /dev
/null
47 echo "\"$LANGUAGE\" is not a supported language."
50 ALLDEFINES
="$ALLDEFINES -ALANG\($LANGUAGE\)"
52 prompt
"Malloc debugging" MALLOC_DEBUGGING N
53 if [ MALLOC_DEBUGGING
= 'Y' -o $MALLOC_DEBUGGING = 'y' ]
55 MALLOC_DEBUGGING
="#define MALLOC_DEBUGGING"
56 ALLDEFINES
="$ALLDEFINES -DMALLOC_DEBUGGING"
61 prompt
"Global configfile name" WINE_CONFIGFILE
/usr
/local
/etc
/wine.conf
63 if [ -r $WINE_CONFIGFILE ]
71 echo -n "Do you want to make a config file now (Y/N) [$DEFAULT_ANS]? "
77 if [ "$input" = 'y' -o "$input" = 'Y' ]
79 if [ -r $WINE_CONFIGFILE ]
81 echo "Backing up the old file to ${WINE_CONFIGFILE}.old."
82 if cp $WINE_CONFIGFILE ${WINE_CONFIGFILE}.old
85 echo "Error while creating backup file. Fix it and run Configure again"
90 CF_A
=`mount | awk '/^\/dev\/fd/ {print $3;exit} END {print "/a"}'`
91 prompt
"Which directory do you want to use as A:" CF_A
$CF_A
92 CF_C
=`awk '{if ($3=="msdos") {print $2;exit}} END {print "/c"}' /etc/fstab`
93 prompt
"Which directory do you want to use as C:" CF_C
$CF_C
94 prompt
"Where is the Windows directory" CF_Windows
'c:\windows'
95 prompt
"Where is the System directory" CF_System
'c:\windows\system'
96 if [ -r "$CF_C/autoexec.bat" ]
98 CF_Temp
=`tr A-Z a-z < "$CF_C/autoexec.batX" | sed -n 's/^ *set *temp= *\(c:.*[a-z]\).*/\1/p'`
104 prompt
"Where should Windows apps store temp files" CF_Temp
$CF_Temp
105 prompt
"Which path should be used to find progs/DLL's" CF_Path
"$CF_Windows;$CF_System"
106 prompt
"Where is sysres.dll" CF_SystemResources
`pwd`/sysres.dll
107 prompt
"Where is COM1" CF_Com1
'/dev/cua0'
108 prompt
"Where is COM2" CF_Com2
'/dev/cua1'
109 prompt
"Where is LPT1" CF_Lpt1
'/dev/lp0'
110 prompt
"Log messages to which file (CON = stdout)" CF_File
'CON'
113 sed -n -e 's/^ *\"\(WM_[A-Z0-9]*\)\".*/\1/p' < misc
/spy.c | \
114 sort |
pr -ta4w83 |
sed '1 i\
115 Here is the list of messages:\
119 prompt
"Exclude which messages from the log" CF_Exclude
'WM_SIZE;WM_TIMER'
121 cat > $WINE_CONFIGFILE << EOF
131 SystemResources=$CF_SystemResources
135 mssansserif=*-helvetica
157 The config file '"$WINE_CONFIGFILE"' now looks like this:\
159 ' < $WINE_CONFIGFILE |
$PAGER
162 echo -n "Do you want to edit it using $EDITOR (Y/N) [N]? "
164 if [ "$input" = 'y' -o "$input" = 'Y' ]
166 $EDITOR $WINE_CONFIGFILE
169 if [ ! -r $WINE_CONFIGFILE ]
171 echo 'Ok, remember to make it yourself later.'
175 cat > autoconf.h
<< EOF
176 /* autoconf.h generated automatically. Run Configure. */
179 #define WINE_INI_GLOBAL "$WINE_CONFIGFILE"
180 #define AutoDefines $ALLDEFINES
184 echo "Creating Makefiles. This may take a while."
189 WARNING: The exit status of the command 'xmkmf -a' indicates an error.
190 Maybe the Wine directory is incomplete, or Imake (see 'man xmkmf imake')
191 is incorrectly configured? In the latter case, it might be easiest to
192 reinstall X11 to get a new copy of Imake.
196 if [ 0 -lt `find . -name "*.rej" -print | wc -l` ]
200 WARNING: You have some files named '*.rej', which usually indicates
201 rejected patch files. Maybe you tried to upgrade Wine with 'patch',
202 and that some of the patches failed? If something doesn't work, this
203 might be the reason. See 'man patch' (especially the '-p' option).
205 List of "*.rej" files:
208 find .
-name "*.rej" -print
214 echo "Configure finished. Do 'make' to compile Wine."
217 echo "*** There was a problem with 'imake': the main Makefile has not be created."