Release 950706
[wine/multimedia.git] / Configure
blob3a4c6f7cfb8f16c5679bd752397efb2c617c0be7
1 #! /bin/sh
3 # Configure script for wine
5 : ${EDITOR:=vi}
6 : ${PAGER:=more}
8 WINELIB=''
9 LANGUAGE=not_matching
10 ALLDEFINES=''
12 # Ask question 'str' and set 'var' to reply (defaulting to 'def' on CR)
13 prompt ()
15 str="$1"
16 var="$2"
17 def="$3"
19 eval $var='$def'
20 echo
21 echo -n "$str [$def]? "
22 input=`head -1` # When using read, user must double all backslashes
23 if [ -n "$input" ]
24 then
25 eval $var='$input'
29 echo
30 echo Read the RELEASE-NOTES for an explanation of the various flags
31 echo
33 echo -n 'Build Wine as emulator or library (E/L) [E]? '
34 read input
35 if [ "$input" = 'l' -o "$input" = 'L' ]
36 then
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
46 then
47 echo "\"$LANGUAGE\" is not a supported language."
49 done
50 ALLDEFINES="$ALLDEFINES -ALANG\($LANGUAGE\)"
52 prompt "Malloc debugging" MALLOC_DEBUGGING N
53 if [ MALLOC_DEBUGGING = 'Y' -o $MALLOC_DEBUGGING = 'y' ]
54 then
55 MALLOC_DEBUGGING="#define MALLOC_DEBUGGING"
56 ALLDEFINES="$ALLDEFINES -DMALLOC_DEBUGGING"
57 else
58 MALLOC_DEBUGGING=''
61 prompt "Global configfile name" WINE_CONFIGFILE /usr/local/etc/wine.conf
63 if [ -r $WINE_CONFIGFILE ]
64 then
65 DEFAULT_ANS=N
66 else
67 DEFAULT_ANS=Y
70 echo
71 echo -n "Do you want to make a config file now (Y/N) [$DEFAULT_ANS]? "
72 read input
73 if [ "$input" = '' ]
74 then
75 input="$DEFAULT_ANS"
77 if [ "$input" = 'y' -o "$input" = 'Y' ]
78 then
79 if [ -r $WINE_CONFIGFILE ]
80 then
81 echo "Backing up the old file to ${WINE_CONFIGFILE}.old."
82 if cp $WINE_CONFIGFILE ${WINE_CONFIGFILE}.old
83 then :
84 else
85 echo "Error while creating backup file. Fix it and run Configure again"
86 exit 1
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" ]
97 then
98 CF_Temp=`tr A-Z a-z < "$CF_C/autoexec.batX" | sed -n 's/^ *set *temp= *\(c:.*[a-z]\).*/\1/p'`
100 if [ -z "$CF_Temp" ]
101 then
102 CF_Temp='c:\temp'
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 COM1" CF_Com1 '/dev/cua0'
107 prompt "Where is COM2" CF_Com2 '/dev/cua1'
108 prompt "Where is LPT1" CF_Lpt1 '/dev/lp0'
109 prompt "Log messages to which file (CON = stdout)" CF_File 'CON'
111 echo
112 sed -n -e 's/^ *\"\(WM_[A-Z0-9]*\)\".*/\1/p' < misc/spy.c | \
113 sort | pr -ta4w83 | sed '1 i\
114 Here is the list of messages:\
116 ' | $PAGER
118 prompt "Exclude which messages from the log" CF_Exclude 'WM_SIZE;WM_TIMER'
120 cat > $WINE_CONFIGFILE << EOF
121 [drives]
122 A=$CF_A
123 C=$CF_C
125 [wine]
126 Windows=$CF_Windows
127 System=$CF_System
128 Temp=$CF_Temp
129 Path=$CF_Path
130 SystemResources=$CF_SystemResources
132 [fonts]
133 system=*-helvetica
134 mssansserif=*-helvetica
135 msserif=*-times
136 fixedsys=*-fixed
137 arial=*-helvetica
138 helv=*-helvetica
139 roman=*-times
140 default=*-*
142 [serialports]
143 Com1=$CF_Com1
144 Com2=$CF_Com2
146 [parallelports]
147 Lpt1=$CF_Lpt1
149 [spy]
150 File=$CF_File
151 Exclude=$CF_Exclude
154 echo
155 sed '1 i\
156 The config file '"$WINE_CONFIGFILE"' now looks like this:\
158 ' < $WINE_CONFIGFILE | $PAGER
160 echo
161 echo -n "Do you want to edit it using $EDITOR (Y/N) [N]? "
162 read input
163 if [ "$input" = 'y' -o "$input" = 'Y' ]
164 then
165 $EDITOR $WINE_CONFIGFILE
167 else
168 if [ ! -r $WINE_CONFIGFILE ]
169 then
170 echo 'Ok, remember to make it yourself later.'
174 cat > autoconf.h << EOF
175 /* autoconf.h generated automatically. Run Configure. */
176 $WINELIB
177 $MALLOC_DEBUGGING
178 #define WINE_INI_GLOBAL "$WINE_CONFIGFILE"
179 #define AutoDefines $ALLDEFINES
182 echo
183 echo "Creating Makefiles. This may take a while."
184 if xmkmf -a
185 then :
186 else cat << EOF
188 WARNING: The exit status of the command 'xmkmf -a' indicates an error.
189 Maybe the Wine directory is incomplete, or Imake (see 'man xmkmf imake')
190 is incorrectly configured? In the latter case, it might be easiest to
191 reinstall X11 to get a new copy of Imake.
195 if [ 0 -lt `find . -name "*.rej" -print | wc -l` ]
196 then
197 cat << EOF
199 WARNING: You have some files named '*.rej', which usually indicates
200 rejected patch files. Maybe you tried to upgrade Wine with 'patch',
201 and that some of the patches failed? If something doesn't work, this
202 might be the reason. See 'man patch' (especially the '-p' option).
204 List of "*.rej" files:
207 find . -name "*.rej" -print
210 if [ -f ./Makefile ]
211 then
212 echo
213 echo "Configure finished. Do 'make' to compile Wine."
214 else
215 echo
216 echo "*** There was a problem with 'imake': the main Makefile has not be created."