Release 941210
[wine/multimedia.git] / Configure
blobd95d5082de0e18059f2f387a9310b8e5441927ed
1 #! /bin/sh
3 # Configure script for wine
5 : ${EDITOR:=vi}
6 : ${PAGER:=more}
8 WINELIB=''
9 SHORTNAMES=''
10 XPM=''
11 LANG=not_matching
12 NEWBUILD=''
13 ALLDEFINES=''
15 # Ask question 'str' and set 'var' to reply (defaulting to 'def' on CR)
16 prompt ()
18 str="$1"
19 var="$2"
20 def="$3"
22 eval $var='$def'
23 echo
24 echo -n "$str [$def]? "
25 input=`head -1` # When using read, user must double all backslashes
26 if [ -n "$input" ]
27 then
28 eval $var='$input'
32 echo -n 'Build Wine as emulator or library (E/L) [E]? '
33 read input
34 if [ "$input" = 'l' -o "$input" = 'L' ]
35 then
36 WINELIB='#define WINELIB -DWINELIB'
37 ALLDEFINES="$ALLDEFINES -DWINELIB"
40 echo
41 echo -n 'Short filenames (Y/N) [N]? '
42 read input
43 if [ "$input" = 'y' -o "$input" = 'Y' ]
44 then
45 SHORTNAMES='#define ShortNames -DSHORTNAMES'
46 ALLDEFINES="$ALLDEFINES -DSHORTNAMES"
49 echo
50 echo -n 'Use the XPM library (Y/N) [N]? '
51 read input
52 if [ "$input" = 'y' -o "$input" = 'Y' ]
53 then
54 XPM='#define USE_XPM'
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
63 then
64 echo "\"$LANG\" is not a supported language."
66 done
67 ALLDEFINES="$ALLDEFINES -ALANG\($LANG\)"
69 if [ "`(domainname)`" = 'amscons.com' ]
70 then
71 echo
72 echo -n 'New build program (Y/N) [N]? '
73 read input
74 if [ "$input" = 'y' -o "$input" = 'Y' ]
75 then
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 ]
84 then
85 DEFAULT_ANS=N
86 else
87 DEFAULT_ANS=Y
90 echo
91 echo -n "Do you want to make a config file now (Y/N) [$DEFAULT_ANS]? "
92 read input
93 if [ "$input" = '' ]
94 then
95 input="$DEFAULT_ANS"
97 if [ "$input" = 'y' -o "$input" = 'Y' ]
98 then
99 if [ -r $WINE_CONFIGFILE ]
100 then
101 echo "Backing up the old file to ${WINE_CONFIGFILE}.old."
102 if cp $WINE_CONFIGFILE ${WINE_CONFIGFILE}.old
103 then :
104 else
105 echo "Error while creating backup file. Fix it and run Configure again"
106 exit 1
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" ]
117 then
118 CF_Temp=`tr A-Z a-z < "$CF_C/autoexec.batX" | sed -n 's/^ *set *temp= *\(c:.*[a-z]\).*/\1/p'`
120 if [ -z "$CF_Temp" ]
121 then
122 CF_Temp='c:\temp'
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'
132 echo
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:\
137 ' | $PAGER
139 prompt "Exclude which messages from the log" CF_Exclude 'WM_SIZE;WM_TIMER'
141 cat > $WINE_CONFIGFILE << EOF
142 [drives]
143 A=$CF_A
144 C=$CF_C
146 [wine]
147 Windows=$CF_Windows
148 System=$CF_System
149 Temp=$CF_Temp
150 Path=$CF_Path
151 SystemResources=$CF_SystemResources
153 [fonts]
154 system=*-helvetica
155 mssansserif=*-helvetica
156 msserif=*-times
157 fixedsys=*-fixed
158 arial=*-helvetica
159 helv=*-helvetica
160 roman=*-times
161 default=*-*
163 [serialports]
164 Com1=$CF_Com1
165 Com2=$CF_Com2
167 [parallelports]
168 Lpt1=$CF_Lpt1
170 [spy]
171 File=$CF_File
172 Exclude=$CF_Exclude
175 echo
176 sed '1 i\
177 The config file '"$WINE_CONFIGFILE"' now looks like this:\
179 ' < $WINE_CONFIGFILE | $PAGER
181 echo
182 echo -n "Do you want to edit it using $EDITOR (Y/N) [N]? "
183 read input
184 if [ "$input" = 'y' -o "$input" = 'Y' ]
185 then
186 $EDITOR $WINE_CONFIGFILE
188 else
189 if [ ! -r $WINE_CONFIGFILE ]
190 then
191 echo 'Ok, remember to make it yourself later.'
195 if grep -s seg_not_present /usr/include/linux/ldt.h 2> /dev/null
196 then
197 ALLDEFINES="$ALLDEFINES -DNEW_LDT_STRUCT"
200 cat > autoconf.h << EOF
201 /* autoconf.h generated automatically. Run Configure. */
202 $WINELIB
203 $SHORTNAMES
204 $XPM
205 $NEWBUILD
206 #define WINE_INI_GLOBAL "$WINE_CONFIGFILE"
207 #define AutoDefines $ALLDEFINES
210 echo
211 echo "Creating Makefiles. This may take a while."
212 xmkmf -a
214 if [ 0 -lt `find . -name "*.rej" -print | wc -l` ]
215 then
216 cat << EOF
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
226 exit 1
229 echo
230 echo "Configure finished. Do 'make' to compile Wine."