/[gxemul]/trunk/configure
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/configure

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4 - (show annotations)
Mon Oct 8 16:18:00 2007 UTC (12 years, 8 months ago) by dpavlin
File size: 32136 byte(s)
++ trunk/HISTORY	(local)
$Id: HISTORY,v 1.707 2005/04/27 16:37:33 debug Exp $
20050408	Some minor updates to the wdc. Linux now doesn't complain
		anymore if a disk is non-present.
20050409	Various minor fixes (a bintrans bug, and some other things).
		The wdc seems to work with Playstation2 emulation, but there
		is a _long_ annoying delay when disks are detected.
		Fixing a really important bintrans bug (when devices and RAM
		are mixed within 4KB pages), which was triggered with
		NetBSD/playstation2 kernels.
20050410	Adding a dummy dev_ps2_ether (just so that NetBSD doesn't
		complain as much during bootup).
		Symbols starting with '$' are now ignored.
		Renaming dev_ps2_ohci.c to dev_ohci.c, etc.
20050411	Moving the bintrans-cache-isolation check from cpu_mips.c to
		cpu_mips_coproc.c. (I thought this would give a speedup, but
		it's not noticable.)
		Better playstation2 sbus interrupt code.
		Skip ahead many ticks if the count register is read manually.
		(This increases the speed of delay-loops that simply read
		the count register.)
20050412	Updates to the playstation2 timer/interrupt code.
		Some other minor updates.
20050413	NetBSD/cobalt runs from a disk image :-) including userland;
		updating the documentation on how to install NetBSD/cobalt
		using NetBSD/pmax (!).
		Some minor bintrans updates (no real speed improvement) and
		other minor updates (playstation2 now uses the -o options).
20050414	Adding a dummy x86 (and AMD64) mode.
20050415	Adding some (32-bit and 16-bit) x86 instructions.
		Adding some initial support for non-SCSI, non-IDE floppy
		images. (The x86 mode can boot from these, more or less.)
		Moving the devices/ and include/ directories to src/devices/
		and src/include/, respectively.
20050416	Continuing on the x86 stuff. (Adding pc_bios.c and some simple
		support for software interrupts in 16-bit mode.)
20050417	Ripping out most of the x86 instruction decoding stuff, trying
		to rewrite it in a cleaner way.
		Disabling some of the least working CPU families in the
		configure script (sparc, x86, alpha, hppa), so that they are
		not enabled by default.
20050418	Trying to fix the bug which caused problems when turning on
		and off bintrans interactively, by flushing the bintrans cache
		whenever bintrans is manually (re)enabled.
20050419	Adding the 'lswi' ppc instruction.
		Minor updates to the x86 instruction decoding.
20050420	Renaming x86 register name indices from R_xx to X86_R_xx (this
		makes building on Tru64 nicer).
20050422	Adding a check for duplicate MIPS TLB entries on tlbwr/tlbwi.
20050427	Adding screenshots to guestoses.html.
		Some minor fixes and testing for the next release.

==============  RELEASE 0.3.2  ==============


1 #!/bin/sh
2 ###############################################################################
3 #
4 # Copyright (C) 2003-2005 Anders Gavare. All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions are met:
8 #
9 # 1. Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 # 2. Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
14 # 3. The name of the author may not be used to endorse or promote products
15 # derived from this software without specific prior written permission.
16 #
17 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27 # SUCH DAMAGE.
28 #
29 #
30 # $Id: configure,v 1.123 2005/04/17 01:42:21 debug Exp $
31 #
32 # This is a minimal configure script, hardcoded for GXemul. This script
33 # figures out which compiler flags will work, and creates Makefiles in
34 # sub-directories. A config.h file is also created.
35 #
36 #
37 # ---> FOR NORMAL USE, JUST RUN ./configure WITHOUT OPTIONS!
38 #
39 #
40 # To compile the emulator with profiling (during development), use
41 # CFLAGS="-pg", run the emulator, and then run 'gprof gxemul' and study
42 # the results.
43 #
44 #
45 # The main things that are detected by this script:
46 #
47 # o) special hacks for some OSes
48 # o) which compiler to use (overridden by setting CC)
49 # o) which compiler flags to use (overridden by setting CFLAGS)
50 # o) X11 flags and libraries (TODO: should be possible to override)
51 # o) binary translation (on supported platforms)
52 # o) prefetch capability (TODO: this is assumed on Alpha, but not all
53 # Alphas have it...)
54 #
55 ###############################################################################
56
57 ENABLEALPHA=NO
58 ENABLEHPPA=NO
59 ENABLEMIPS=YES
60 ENABLEPPC=YES
61 ENABLESPARC=NO
62 ENABLEURISC=YES
63 ENABLEX86=NO
64
65 if [ z"$*" != z ]; then
66 # Parse command line options:
67 for a in $*; do
68 if [ z$a = z--disable-x ]; then
69 NOX11=YES
70 else if [ z$a = z--always32 ]; then
71 ALWAYS32=YES
72 else if [ z$a = z--disable-bintrans ]; then
73 NOBINTRANS=YES
74 else if [ z$a = z--enable-mips16 ]; then
75 MIPS16=YES
76 else if [ z$a = z--enable-alpha ]; then
77 ENABLEALPHA=YES
78 else if [ z$a = z--enable-hppa ]; then
79 ENABLEHPPA=YES
80 else if [ z$a = z--disable-mips ]; then
81 ENABLEMIPS=NO
82 else if [ z$a = z--disable-ppc ]; then
83 ENABLEPPC=NO
84 else if [ z$a = z--enable-sparc ]; then
85 ENABLESPARC=YES
86 else if [ z$a = z--disable-urisc ]; then
87 ENABLEURISC=NO
88 else if [ z$a = z--enable-x86 ]; then
89 ENABLEX86=YES
90 else if [ z$a = z--enable-delays ]; then
91 DELAYS=YES
92 else if [ z$a = z--enable-caches ]; then
93 CACHES=YES
94 else if [ z$a = z--help ]; then
95 echo "usage: $0 [options]"
96 printf "\nDevelopment (debug) options:\n"
97 echo " --always32 enable" \
98 "ALWAYS_SIGNEXTEND_32 (for hunting down"
99 echo " 32/64-bit bugs)"
100 printf "\nGeneral options:\n"
101 echo " --disable-bintrans configure without" \
102 "bintrans, even if the host supports it"
103 echo " --enable-caches enable cache emulation" \
104 "(experimental)"
105 echo " --enable-delays enable instruction" \
106 "latency/delay emulation"
107 echo " --disable-x don't include X11 support"
108 printf "\nCPU selection options: (most of these"
109 printf " are experimental)\n"
110 echo " --enable-alpha enable Alpha CPU emulation"
111 echo " --enable-hppa enable HPPA CPU emulation"
112 echo " --disable-mips disable MIPS CPU emulation"
113 echo " --disable-ppc disable PPC CPU emulation"
114 echo " --enable-sparc enable SPARC CPU emulation"
115 echo " --disable-urisc disable URISC CPU emulation"
116 echo " --enable-x86 enable x86 CPU emulation"
117 printf "\nMIPS-specific options:\n"
118 echo " --enable-mips16 enable MIPS16 instruction" \
119 "support (experimental)"
120 printf "\n"
121 exit
122 else
123 echo "Invalid option: $a"
124 echo "Run $0 --help to get a list of" \
125 "available options."
126 exit
127 fi; fi; fi; fi; fi; fi; fi; fi; fi; fi; fi; fi; fi; fi
128 done
129 fi
130
131
132 ###############################################################################
133 #
134 # Configure options:
135 #
136 # This creates a config.h file, which is then included from include/misc.h.
137 #
138 ###############################################################################
139
140 # Head of config.h:
141 printf "/*
142 * THIS FILE IS AUTOMATICALLY CREATED BY configure!
143 * DON'T EDIT THIS FILE MANUALLY, IT WILL BE OVERWRITTEN.
144 */
145 \n#ifndef CONFIG_H\n#define CONFIG_H\n\n" > config.h
146
147
148 # Figure out if VERSION should be defined.
149 X=`basename \`pwd\`|cut -d \- -f 2-`
150 if [ z"$X" = zgxemul ]; then
151 echo '# No VERSION defined.' >> _Makefile.header
152 else
153 printf "#define VERSION \"$X\"\n" >> config.h
154 fi
155
156
157 ZZ=`echo compiled on \`uname\`/\`uname -m\`, \`date\``
158 printf "#define COMPILE_DATE \"$ZZ\"\n" >> config.h
159
160
161
162 # Support for various CPU types:
163 if [ z$MIPS16 = zYES ]; then
164 printf 'Enabling MIPS16 support. '
165 printf 'NOTE: MIPS16 support is not really working yet.\n'
166 printf "#define ENABLE_MIPS16\n" >> config.h
167 fi
168 if [ z$ENABLEALPHA = zYES ]; then
169 printf "#define ENABLE_ALPHA\n" >> config.h
170 fi
171 if [ z$ENABLEHPPA = zYES ]; then
172 printf "#define ENABLE_HPPA\n" >> config.h
173 fi
174 if [ z$ENABLEMIPS = zYES ]; then
175 printf "#define ENABLE_MIPS\n" >> config.h
176 fi
177 if [ z$ENABLEPPC = zYES ]; then
178 printf "#define ENABLE_PPC\n" >> config.h
179 fi
180 if [ z$ENABLESPARC = zYES ]; then
181 printf "#define ENABLE_SPARC\n" >> config.h
182 fi
183 if [ z$ENABLEURISC = zYES ]; then
184 printf "#define ENABLE_URISC\n" >> config.h
185 fi
186 if [ z$ENABLEX86 = zYES ]; then
187 printf "#define ENABLE_X86\n" >> config.h
188 fi
189
190
191 # Instruction delay/latency emulation:
192 if [ z$DELAYS = zYES ]; then
193 echo 'Enabling Instruction delay/latency emulation.'
194 printf "#define ENABLE_INSTRUCTION_DELAYS\n" >> config.h
195 fi
196
197
198 # Instruction delay/latency emulation:
199 if [ z$ALWAYS32 = zYES ]; then
200 echo 'Enabling ALWAYS_SIGNEXTEND_32. (NOTE:' \
201 'This slows down everything.)'
202 printf "#define ALWAYS_SIGNEXTEND_32\n" >> config.h
203 fi
204
205
206 # Cache emulation:
207 if [ z$CACHES = zYES ]; then
208 echo 'Enabling Cache emulation. (EXPERIMENTAL)'
209 printf "#define ENABLE_CACHE_EMULATION\n" >> config.h
210
211 if [ z$DELAYS != zYES ]; then
212 printf 'WARNING: Cache emulation without instruction '
213 printf 'delay/latency emulation\n'
214 printf ' (--delays) will not produce correct '
215 printf 'cache miss penalties and such.\n'
216 fi
217 fi
218
219
220 ###############################################################################
221 #
222 # Special hacks for some host OSes:
223 #
224 ###############################################################################
225
226 if [ z"`uname|cut -c 1-6`" = zCYGWIN ]; then
227 CYGWIN=YES
228
229 if [ z"$CC" = z ]; then
230 # Assume gcc on Cygwin (Windows) systems.
231 CC=gcc
232 fi
233 fi
234
235 if [ z"`uname`" = zHP-UX ]; then
236 HPUX=YES
237
238 if [ z$CC = z ]; then
239 if [ -f /usr/local/pa64/bin/gcc ]; then
240 CC=/usr/local/pa64/bin/gcc
241 fi
242 fi
243 fi
244
245 if [ z"`uname`" = zOSF1 ]; then
246 OSF1=YES
247 fi
248
249
250 ###############################################################################
251 #
252 # Create the Makefile header:
253 #
254 ###############################################################################
255
256 rm -f _Makefile.header
257
258 printf "#
259 # DO NOT EDIT THIS FILE! It is automagically created by
260 # the configure script, based on Makefile.skel.
261 #\n\n" >> _Makefile.header
262
263
264 echo 'int main(int argc, char *argv[]) { return 0; }' > _testprog.c
265
266
267 # Try to detect which C compiler to use, if CC is not set:
268 printf "checking which C compiler to use... "
269
270 if [ z"$CC" = z ]; then
271 CC=cc
272
273 # Try gcc first:
274 printf "#!/bin/sh\ngcc _testprog.c -o _testprog >" > _test.sh
275 printf " /dev/null 2> /dev/null\n" >> _test.sh
276 chmod 755 _test.sh
277 ./_test.sh > /dev/null 2> /dev/null
278 if [ -x _testprog ]; then
279 CC=gcc
280 fi
281 rm -f _testprog
282
283 # If both gcc and cc exist, then cc might be a vendor specific
284 # compiler which produces faster code than gcc (eg on Solaris):
285 printf "#!/bin/sh\ncc _testprog.c -o _testprog >" > _test.sh
286 printf " /dev/null 2> /dev/null\n" >> _test.sh
287 chmod 755 _test.sh
288 ./_test.sh > /dev/null 2> /dev/null
289 if [ -x _testprog ]; then
290 CC=cc
291 fi
292 rm -f _testprog
293
294 # Try ccc (FreeBSD/Alpha):
295 printf "#!/bin/sh\nccc _testprog.c -o _testprog >" > _test.sh
296 printf " /dev/null 2> /dev/null\n" >> _test.sh
297 chmod 755 _test.sh
298 ./_test.sh > /dev/null 2> /dev/null
299 if [ -x _testprog ]; then
300 CC="ccc"
301 fi
302 rm -f _testprog
303
304 rm -f _test.sh
305 fi
306
307
308 rm -f _testprog
309 printf "$CC $CFLAGS"
310
311
312 CCTYPE="generic"
313
314 if $CC $CFLAGS -V 2> /dev/null | grep ompaq 1> /dev/null 2> /dev/null; then
315 COMPAQCC=YES
316 CCTYPE="Compaq CC"
317 fi
318
319 if $CC $CFLAGS -V 2>&1 | grep Sun 1> /dev/null 2> /dev/null; then
320 SUNCC=YES
321 CCTYPE="Solaris CC"
322 fi
323
324 if $CC $CFLAGS -v 2>&1 | grep gcc 1> /dev/null 2> /dev/null; then
325 GCCCC=YES
326 CCTYPE="GNU CC"
327 fi
328
329 if [ z$CYGWIN = zYES ]; then
330 CCTYPE="$CCTYPE (Cygwin)"
331 fi
332
333 echo " ($CCTYPE)"
334
335
336 if [ z$NOX11 = z ]; then
337 printf "checking for X11 headers and libs\n"
338
339 # Try to compile a small X11 test program:
340 printf "#include <X11/Xlib.h>
341 #include <stdio.h>
342 Display *dis;
343 void f(void) {
344 dis = XOpenDisplay(NULL);
345 }
346 int main(int argc, char *argv[])
347 { return 0; }
348 " > _test_x11.c
349
350 XOK=0
351
352 XINCLUDE=-I/usr/X11R6/include
353 $CC $CFLAGS _test_x11.c -c -o _test_x11.o $XINCLUDE 2> /dev/null
354
355 XLIB="-L/usr/X11R6/lib -lX11"
356 $CC $CFLAGS _test_x11.o -o _test_x11 $XLIB 2> /dev/null
357
358 if [ -x _test_x11 ]; then
359 XOK=1
360 fi
361
362 rm -f _test_x11 _test_x11.o
363
364 if [ z$XOK = z0 ]; then
365 XINCLUDE=""
366 $CC $CFLAGS _test_x11.c -c -o _test_x11.o \
367 $XINCLUDE 2> /dev/null
368
369 # -lsocket for Solaris
370 XLIB="-lX11 -lsocket"
371 $CC $CFLAGS _test_x11.o -o _test_x11 $XLIB 2> /dev/null
372
373 if [ -x _test_x11 ]; then
374 XOK=1
375 fi
376 rm -f _test_x11 _test_x11.o
377 fi
378
379 if [ z`uname` = zNetBSD ]; then
380 echo "Using NetBSD hack for X11 libs..."
381 XLIB="$XLIB -Wl,-rpath,/usr/X11R6/lib"
382 fi
383
384 if [ z`uname` = zOpenBSD ]; then
385 if [ z`uname -m` = zarc ]; then
386 echo "Using old OpenBSD/arc hack for X11 libs..."
387 XLIB="$XLIB -Wl,-rpath,/usr/X11R6/lib"
388 fi
389 fi
390
391 if [ z$XOK = z0 ]; then
392 echo "Failed to compile X11 test program." \
393 "Configuring without X11."
394 else
395 printf "X11 headers: $XINCLUDE\n"
396 printf "X11 libraries: $XLIB\n"
397 echo "XINCLUDE=$XINCLUDE" >> _Makefile.header
398 echo "XLIB=$XLIB" >> _Makefile.header
399 printf "#define WITH_X11\n" >> config.h
400 fi
401
402 rm -f _test_x11.c
403 fi
404
405
406 if [ z$HPUX = zYES ]; then
407 CFLAGS="-D_XOPEN_SOURCE_EXTENDED $CFLAGS"
408 printf "#define HPUX\n" >> config.h
409 fi
410
411
412 if [ z$OSF1 = zYES ]; then
413 CFLAGS="-D_XOPEN_SOURCE=500 -D_OSF_SOURCE -D_POSIX_PII_SOCKET $CFLAGS"
414 fi
415
416
417 # Check for weird 'alpha' define.
418 printf "checking for weird 'alpha' define... "
419 printf "#include <stdio.h>\nint main(int argc, char *argv[]){
420 #ifdef alpha
421 printf(\"1\");
422 #undef alpha
423 #ifdef alpha
424 printf(\"2\");
425 #endif
426 #endif
427 printf(\"\\\n\");return 0;}\n" > _testm.c
428 $CC $CFLAGS _testm.c -o _testm 2> /dev/null
429 if [ ! -x _testm ]; then
430 printf "\nWARNING! COULD NOT COMPILE alpha define TEST"
431 printf " PROGRAM AT ALL!\n"
432 else
433 if [ z`./_testm` = z1 ]; then
434 printf "yes, workaround applied\n"
435 echo "#undef alpha" >> config.h
436 else
437 if [ z`./_testm` = z12 ]; then
438 printf "yes, but workaround not possible\n"
439 exit
440 else
441 printf "no\n"
442 fi
443 fi
444 fi
445 rm -f _testm*
446
447
448 # Check for weird 'hppa' define.
449 printf "checking for weird 'hppa' define... "
450 printf "#include <stdio.h>\nint main(int argc, char *argv[]){
451 #ifdef hppa
452 printf(\"1\");
453 #undef hppa
454 #ifdef hppa
455 printf(\"2\");
456 #endif
457 #endif
458 printf(\"\\\n\");return 0;}\n" > _testm.c
459 $CC $CFLAGS _testm.c -o _testm 2> /dev/null
460 if [ ! -x _testm ]; then
461 printf "\nWARNING! COULD NOT COMPILE hppa define TEST"
462 printf " PROGRAM AT ALL!\n"
463 else
464 if [ z`./_testm` = z1 ]; then
465 printf "yes, workaround applied\n"
466 echo "#undef hppa" >> config.h
467 else
468 if [ z`./_testm` = z12 ]; then
469 printf "yes, but workaround not possible\n"
470 exit
471 else
472 printf "no\n"
473 fi
474 fi
475 fi
476 rm -f _testm*
477
478
479 # Some OSes on MIPS seems to define 'mips' to 1. (eg OpenBSD/arc)
480 printf "checking for weird 'mips' define... "
481 printf "#include <stdio.h>\nint main(int argc, char *argv[]){
482 #ifdef mips
483 printf(\"1\");
484 #undef mips
485 #ifdef mips
486 printf(\"2\");
487 #endif
488 #endif
489 printf(\"\\\n\");return 0;}\n" > _testm.c
490 $CC $CFLAGS _testm.c -o _testm 2> /dev/null
491 if [ ! -x _testm ]; then
492 printf "\nWARNING! COULD NOT COMPILE mips define TEST"
493 printf " PROGRAM AT ALL!\n"
494 else
495 if [ z`./_testm` = z1 ]; then
496 printf "yes, workaround applied\n"
497 echo "#undef mips" >> config.h
498 else
499 if [ z`./_testm` = z12 ]; then
500 printf "yes, but workaround not possible\n"
501 exit
502 else
503 printf "no\n"
504 fi
505 fi
506 fi
507 rm -f _testm*
508
509
510 # Similar to the mips define check above, although I don't know if
511 # any OS actually defined ppc like this.
512 printf "checking for weird 'ppc' define... "
513 printf "#include <stdio.h>\nint main(int argc, char *argv[]){
514 #ifdef ppc
515 printf(\"1\");
516 #undef ppc
517 #ifdef ppc
518 printf(\"2\");
519 #endif
520 #endif
521 printf(\"\\\n\");return 0;}\n" > _testm.c
522 $CC $CFLAGS _testm.c -o _testm 2> /dev/null
523 if [ ! -x _testm ]; then
524 printf "\nWARNING! COULD NOT COMPILE ppc define TEST"
525 printf " PROGRAM AT ALL!\n"
526 else
527 if [ z`./_testm` = z1 ]; then
528 printf "yes, workaround applied\n"
529 echo "#undef ppc" >> config.h
530 else
531 if [ z`./_testm` = z12 ]; then
532 printf "yes, but workaround not possible\n"
533 exit
534 else
535 printf "no\n"
536 fi
537 fi
538 fi
539 rm -f _testm*
540
541
542 # Similar to the mips define check above, although I don't know if
543 # any OS actually defined sparc like this.
544 printf "checking for weird 'sparc' define... "
545 printf "#include <stdio.h>\nint main(int argc, char *argv[]){
546 #ifdef sparc
547 printf(\"1\");
548 #undef sparc
549 #ifdef sparc
550 printf(\"2\");
551 #endif
552 #endif
553 printf(\"\\\n\");return 0;}\n" > _testm.c
554 $CC $CFLAGS _testm.c -o _testm 2> /dev/null
555 if [ ! -x _testm ]; then
556 printf "\nWARNING! COULD NOT COMPILE sparc define TEST "
557 printf "PROGRAM AT ALL!\n"
558 else
559 if [ z`./_testm` = z1 ]; then
560 printf "yes, workaround applied\n"
561 echo "#undef sparc" >> config.h
562 else
563 if [ z`./_testm` = z12 ]; then
564 printf "yes, but workaround not possible\n"
565 exit
566 else
567 printf "no\n"
568 fi
569 fi
570 fi
571 rm -f _testm*
572
573
574 # CWARNINGS:
575 printf "checking whether -Wall can be used... "
576 $CC $CFLAGS _testprog.c -o _testprog -Wall 2> /dev/null
577 if [ -x _testprog ]; then
578 printf "yes\n"
579 CWARNINGS="-Wall $CWARNINGS"
580
581 # Compaq's compiler always seems to warn about the long long type,
582 # and unusedtop suppresses warnings about include files being
583 # included more than once.
584 if [ z"$COMPAQCC" = zYES ]; then
585 CWARNINGS="$CWARNINGS -msg_disable longlongtype,unusedtop"
586 fi
587 else
588 printf "no\n"
589 fi
590 rm -f _testprog
591
592
593 if [ z"$COMPAQCC" = zYES ]; then
594 # -O4 is possible, but is -O3 better?
595 CFLAGS="-O4 $CFLAGS"
596 else
597 if [ z"`uname`" = zSunOS ]; then
598 # "cc", the system's default compiler:
599 if [ z"$SUNCC" = zYES ]; then
600 CFLAGS="-xO5 -xdepend $CFLAGS"
601 fi
602 printf "#define SOLARIS\n" >> config.h
603 OTHERLIBS="-lsocket $OTHERLIBS"
604 else
605 # gcc or something else:
606 $CC $CFLAGS _testprog.c -o _testprog -O 2> /dev/null
607 if [ -x _testprog ]; then
608 rm -f _testprog
609 $CC $CFLAGS _testprog.c -o _testprog -O2 2> /dev/null
610 if [ -x _testprog ]; then
611 CFLAGS="-O2 $CFLAGS"
612 else
613 CFLAGS="-O $CFLAGS"
614 fi
615 fi
616 fi
617 fi
618 rm -f _testprog
619
620
621 # -fschedule-insns causes bugs on i386 with gcc,
622 # but works OK on my alpha with ccc (compaq's cc).
623 if [ z"$COMPAQCC" = zYES ]; then
624 printf "checking whether -fschedule-insns2 can be used... "
625 $CC $CFLAGS _testprog.c -o _testprog -fschedule-insns2 2> /dev/null
626 if [ -x _testprog ]; then
627 CFLAGS="-fschedule-insns2 $CFLAGS"
628 printf "yes\n"
629 else
630 printf "no\n"
631 fi
632 rm -f _testprog
633
634 printf "checking whether -fschedule-insns can be used... "
635 $CC $CFLAGS _testprog.c -o _testprog -fschedule-insns 2> /dev/null
636 if [ -x _testprog ]; then
637 CFLAGS="-fschedule-insns $CFLAGS"
638 printf "yes\n"
639 else
640 printf "no\n"
641 fi
642 rm -f _testprog
643
644 # # -intrinsics
645 # $CC $CFLAGS _testprog.c -o _testprog -intrinsics 2> /dev/null
646 # if [ -x _testprog ]; then
647 # CFLAGS="-intrinsics $CFLAGS"
648 # fi
649 # rm -f _testprog
650
651 # -fast
652 printf "checking whether -fast can be used... "
653 $CC $CFLAGS _testprog.c -o _testprog -fast 2> /dev/null
654 if [ -x _testprog ]; then
655 CFLAGS="-fast $CFLAGS"
656 printf "yes\n"
657 else
658 printf "no\n"
659 fi
660 rm -f _testprog
661 fi
662
663
664 # -fpeephole
665 printf "checking whether -fpeephole can be used... "
666 $CC $CFLAGS -fpeephole _testprog.c -o _testprog > _testprog.stdout 2>&1
667 cat _testprog.stdout >> _testprog.error
668 if grep peephole _testprog.error > /dev/null 2>&1; then
669 printf "no\n"
670 else
671 if [ -x _testprog ]; then
672 CFLAGS="-fpeephole $CFLAGS"
673 printf "yes\n"
674 else
675 printf "no\n"
676 fi
677 fi
678 rm -f _testprog _testprog.error _testprog.stdout
679
680
681 # -fmove-all-movables
682 printf "checking whether -fmove-all-movables can be used... "
683 $CC $CFLAGS -fmove-all-movables _testprog.c -o \
684 _testprog > _testprog.stdout 2>&1
685 cat _testprog.stdout >> _testprog.error
686 if grep movables _testprog.error > /dev/null 2>&1; then
687 printf "no\n"
688 else
689 if [ -x _testprog ]; then
690 CFLAGS="-fmove-all-movables $CFLAGS"
691 printf "yes\n"
692 else
693 printf "no\n"
694 fi
695 fi
696 rm -f _testprog _testprog.error _testprog.stdout
697
698
699 # -fomit-frame-pointer
700 printf "checking whether -fomit-frame-pointer can be used... "
701 $CC $CFLAGS -fomit-frame-pointer _testprog.c -o \
702 _testprog 1> _testprog.stdout 2>&1
703 cat _testprog.stdout >> _testprog.error
704 if grep frame _testprog.error > /dev/null 2>&1; then
705 printf "no\n"
706 else
707 if [ -x _testprog ]; then
708 CFLAGS="-fomit-frame-pointer $CFLAGS"
709 printf "yes\n"
710 else
711 printf "no\n"
712 fi
713 fi
714 rm -f _testprog _testprog.error _testprog.stdout
715
716
717 # -lrt for nanosleep?
718 printf "checking whether -lrt is required for nanosleep... "
719 printf "#include <time.h>\n#include <stdio.h>
720 int main(int argc, char *argv[]){nanosleep(NULL,NULL);return 0;}\n" > _testns.c
721 $CC $CFLAGS _testns.c -o _testns 2> /dev/null
722 if [ ! -x _testns ]; then
723 $CC $CFLAGS -lrt _testns.c -o _testns 2> /dev/null
724 if [ ! -x _testns ]; then
725 printf "WARNING! COULD NOT COMPILE WITH nanosleep AT ALL!\n"
726 else
727 # -lrt for nanosleep
728 OTHERLIBS="-lrt $OTHERLIBS"
729 printf "yes\n"
730 fi
731 else
732 printf "no\n"
733 fi
734 rm -f _testns.c _testns
735
736
737 # -lresolv for inet_pton?
738 printf "checking whether -lresolv is required for inet_pton... "
739 printf "int inet_pton(void); int main(int argc, " > _testr.c
740 printf "char *argv[]) { return inet_pton(); }\n" >> _testr.c
741 $CC $CFLAGS _testr.c -o _testr 2> /dev/null
742 if [ ! -x _testr ]; then
743 $CC $CFLAGS _testr.c -lresolv -o _testr 2> /dev/null
744 if [ ! -x _testr ]; then
745 $CC $CFLAGS _testr.c -lresolv -lnsl -o _testr 2> /dev/null
746 if [ ! -x _testr ]; then
747 printf "no, using inet_aton\n"
748 else
749 # -lresolv -lnsl for inet_pton
750 OTHERLIBS="-lresolv -lnsl $OTHERLIBS"
751 printf "yes (and -lnsl)\n"
752 printf "#define HAVE_INET_PTON\n" >> config.h
753 fi
754 else
755 # -lresolv for inet_pton
756 OTHERLIBS="-lresolv $OTHERLIBS"
757 printf "yes\n"
758 printf "#define HAVE_INET_PTON\n" >> config.h
759 fi
760 else
761 printf "no\n"
762 printf "#define HAVE_INET_PTON\n" >> config.h
763 fi
764 rm -f _testr.[co] _testr
765
766
767 # -lm?
768 printf "checking for math libs..."
769 printf "#include <math.h>\nint main(int argc, char *argv[]) { " > _testr.c
770 printf "double x = sqrt((double)argc); return (int)x; }\n" >> _testr.c
771 $CC $CFLAGS _testr.c -o _testr 2> /dev/null
772 if [ ! -x _testr ]; then
773 $CC $CFLAGS _testr.c -lm -o _testr 2> /dev/null
774 if [ ! -x _testr ]; then
775 $CC $CFLAGS _testr.c -lm -lcpml -o _testr 2> /dev/null
776 if [ ! -x _testr ]; then
777 printf "\nWARNING! Could not compile math test "
778 printf "at all!\nContinuing anyway.\n\n"
779 else
780 # -lm AND -lcpml
781 OTHERLIBS="-lm -lcpml $OTHERLIBS"
782 printf " -lm -lcpml\n"
783 fi
784 else
785 # Normal -lm
786 OTHERLIBS="-lm $OTHERLIBS"
787 printf " -lm\n"
788 fi
789 else
790 printf " none needed\n"
791 fi
792 rm -f _testr.[co] _testr
793
794
795 # strtoull missing?
796 printf "checking for strtoull... "
797 printf "#include <stdlib.h>
798 #include <limits.h>
799 #include <stdio.h>
800 int main(int argc, char *argv[]) {
801 long long x = strtoull(argv[1], NULL, 0); return 0;}\n" > _tests.c
802 $CC $CFLAGS _tests.c -o _tests 2> /dev/null
803 if [ ! -x _tests ]; then
804 printf "missing, using mystrtoull\n"
805 printf "#define strtoull mystrtoull\n" >> config.h
806 else
807 printf "yes\n"
808 fi
809 rm -f _testlong* _tests.[co] _tests
810
811
812 # fseeko missing?
813 printf "checking for fseeko... "
814 printf "#include <stdlib.h>
815 #include <limits.h>
816 #include <stdio.h>
817 #include <sys/types.h>
818 int main(int argc, char *argv[]) { fseeko(NULL, 0, 0); return 0;}\n" > _tests.c
819 $CC $CFLAGS _tests.c -o _tests 2> /dev/null
820 if [ ! -x _tests ]; then
821 printf "no\n"
822 printf "WARNING! fseeko missing from libc. Using a hack, "
823 printf "which probably doesn't work.\n"
824 printf "#define HACK_FSEEKO\n" >> config.h
825 else
826 printf "yes\n"
827 fi
828 rm -f _tests.[co] _tests
829
830
831 # socklen_t missing?
832 # (for example really old OpenBSD/arc 2.3, inside the emulator)
833 printf "checking for socklen_t... "
834 printf "#include <stdlib.h>
835 #include <stdio.h>
836 #include <sys/types.h>
837 #include <sys/socket.h>
838 int main(int argc, char *argv[]) { socklen_t x; return 0;}\n" > _tests.c
839 $CC $CFLAGS _tests.c -o _tests 2> /dev/null
840 if [ ! -x _tests ]; then
841 printf "no, using int\n"
842 CFLAGS="$CFLAGS -Dsocklen_t=int"
843 else
844 printf "yes\n"
845 fi
846 rm -f _tests.[co] _tests
847
848
849 # MAP_ANON missing? (On some HP-UX systems? Use MAP_ANONYMOUS instead.)
850 printf "checking for MAP_ANON... "
851 rm -f _tests
852 printf "#include <stdio.h>
853 #include <sys/types.h>
854 #include <sys/mman.h>
855 int main(int argc, char *argv[]) { int x = MAP_ANON; return 0;}\n" > _tests.c
856 $CC $CFLAGS _tests.c -o _tests 2> /dev/null
857 if [ ! -x _tests ]; then
858 printf "#include <stdio.h>
859 #include <sys/types.h>
860 #include <sys/mman.h>
861 int main(int argc, char *argv[])
862 { int x = MAP_ANONYMOUS; return 0;}\n" > _tests.c
863 $CC $CFLAGS _tests.c -o _tests 2> /dev/null
864 if [ ! -x _tests ]; then
865 printf "no\n\n"
866 printf "WARNING! Neither MAP_ANON nor MAP_ANONYMOUS work on "
867 printf "this system.\nPlease try to compile anyway, and report"
868 printf " to me whether it builds/runs or not.\n\n"
869 printf "#define MAP_ANON 0\n" >> config.h
870 printf "#define NO_MAP_ANON\n" >> config.h
871 else
872 printf "using MAP_ANONYMOUS\n"
873 printf "#define MAP_ANON MAP_ANONYMOUS\n" >> config.h
874 fi
875 else
876 printf "yes\n"
877 fi
878 rm -f _tests.[co] _tests
879
880
881 # Check for 64-bit off_t:
882 printf "checking for 64-bit off_t... "
883 printf "#include <stdio.h>\n#include <inttypes.h>\n#include <sys/types.h>\n
884 int main(int argc, char *argv[]){printf(\"%%i\\\n\",
885 (int)sizeof(off_t));return 0;}\n" > _testoff.c
886 $CC $CFLAGS _testoff.c -o _testoff 2> /dev/null
887 if [ ! -x _testoff ]; then
888 printf "\nWARNING! COULD NOT COMPILE off_t TEST PROGRAM AT ALL!\n"
889 else
890 if [ z`./_testoff` = z8 ]; then
891 printf "yes\n"
892 else
893 $CC $CFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
894 _testoff.c -o _testoff 2> /dev/null
895 if [ ! -x _testoff ]; then
896 printf "\nWARNING! COULD NOT COMPILE off_t TEST "
897 printf "PROGRAM!\n"
898 else
899 if [ z`./_testoff` = z8 ]; then
900 CFLAGS="-D_FILE_OFFSET_BITS=64 $CFLAGS"
901 CFLAGS="-D_LARGEFILE_SOURCE $CFLAGS"
902 printf "using -D_FILE_OFFSET_BITS=64"
903 printf " -D_LARGEFILE_SOURCE\n"
904 else
905 printf "NO\n"
906 printf "Warning! No 64-bit off_t. Continuing "
907 printf "anyway.\n"
908 fi
909 fi
910 fi
911 fi
912 rm -f _testoff.c _testoff
913
914
915 # Check for u_int8_t etc:
916 printf "checking for u_int8_t... "
917 printf "#include <stdio.h>\n#include <inttypes.h>\n#include <sys/types.h>\n
918 int main(int argc, char *argv[]){printf(\"%%i\\\n\",
919 (int)sizeof(u_int8_t));return 0;}\n" > _testuint.c
920 $CC $CFLAGS _testuint.c -o _testuint 2> /dev/null
921 if [ ! -x _testuint ]; then
922 rm -f _testuint*
923 printf "#include <stdio.h>\n#include <inttypes.h>
924 \n#include <sys/types.h>\nint main(int argc, char *argv[])
925 {printf(\"%%i\\\n\", (int)sizeof(uint8_t));return 0;}\n" > _testuint.c
926 $CC $CFLAGS _testuint.c -o _testuint 2> /dev/null
927 if [ ! -x _testuint ]; then
928 printf "no\n\nERROR: No u_int8_t or uint8_t. Aborting\n"
929 # TODO: Automagically detect using various combinations
930 # of char, int, short, long etc.
931 exit
932 fi
933
934 printf "typedef uint8_t u_int8_t;\n" >> config.h
935 printf "typedef uint16_t u_int16_t;\n" >> config.h
936 printf "typedef uint32_t u_int32_t;\n" >> config.h
937 printf "typedef uint64_t u_int64_t;\n" >> config.h
938 printf "uint8_t\n"
939 else
940 printf "yes\n"
941 fi
942 rm -f _testuint.c _testuint
943
944
945 ###############################################################################
946 #
947 # Dynamic binary translation (BINTRANS):
948 #
949 ###############################################################################
950
951 printf "checking for bintrans backend... "
952
953 BINTRANS=NO
954
955 if [ z$ENABLEMIPS = zNO ]; then
956 printf "NO!\nTEMPORARY HACK/PROBLEM: Disabling bintrans for now,\n"
957 printf "until things have stabilized.\n"
958 NOBINTRANS=YES
959 fi
960
961 if [ z$NOBINTRANS = zYES ]; then
962 printf "disabled\n"
963 else
964 # Alpha:
965 if [ z"`uname -m`" = zalpha ]; then
966 printf "#define ALPHA\n" >> config.h
967 printf "#define BINTRANS\n" >> config.h
968 printf "Alpha\n"
969 BINTRANS=YES
970 fi
971
972 # x86: (all machines ending in "86" are treated as i386)
973 if [ z"`uname -m|rev|cut -c1-2`" = z68 ]; then
974 printf "#define I386\n" >> config.h
975 printf "#define BINTRANS\n" >> config.h
976 printf "i386\n"
977 BINTRANS=YES
978 fi
979
980 # MIPS not yet
981 # # MIPS:
982 # if [ z"`uname -m`" = zmips ]; then
983 # printf "#define MIPS\n" >> config.h
984 # printf "#define BINTRANS\n" >> config.h
985 # printf "MIPS\n"
986 # BINTRANS=YES
987 # fi
988
989 # # UltraSPARC:
990 # if [ z"`uname -m`" = zsun4u ]; then
991 # printf "#define SPARCV9\n" >> config.h
992 # printf "#define BINTRANS\n" >> config.h
993 # printf "SPARC V9\n"
994 # BINTRANS=YES
995 # else
996 # if [ z"`uname -m`" = zsparc64 ]; then
997 # printf "#define SPARCV9\n" >> config.h
998 # printf "#define BINTRANS\n" >> config.h
999 # printf "SPARC V9\n"
1000 # BINTRANS=YES
1001 # fi
1002 # fi
1003
1004 if [ z$BINTRANS = zNO ]; then
1005 printf "not supported yet on this arch\n"
1006 fi
1007 fi
1008
1009
1010 ###############################################################################
1011
1012 # Prefetch support?
1013 printf "checking for asm prefetch support... "
1014 if [ z"`uname -m`" = zalpha ]; then
1015 rm -f _alpha_asm_test.c _alpha_asm_test
1016 printf 'int main(int argc, char *argv[])
1017 { int x; int *y = &x; asm ("ldl $31,0(%%0)" : : "g" (y));
1018 return 0; }\n' > _alpha_asm_test.c
1019 $CC $CFLAGS -O2 _alpha_asm_test.c -o _alpha_asm_test \
1020 > /dev/null 2> /dev/null
1021 if [ -x _alpha_asm_test ]; then
1022 # printf "#define HAVE_PREFETCH\n" >> config.h
1023 printf "#define PREFETCH(x) asm(\"ldl" >> config.h
1024 printf " \$31,0(%%0)\" : : \"g\" (x))\n" >> config.h
1025 echo "yes"
1026 PREFSUP=YES
1027 fi
1028 rm -f _alpha_asm_test.c _alpha_asm_test
1029 fi
1030 if [ z$PREFSUP = z ]; then
1031 printf "#define PREFETCH(x) { }\n" >> config.h
1032 echo "no"
1033 fi
1034
1035
1036 ###############################################################################
1037
1038 INCLUDE=-Iinclude/
1039 DINCLUDE=-I../include/
1040
1041 echo C compiler flags: $CFLAGS $CWARNINGS
1042 echo Linker flags: $OTHERLIBS
1043 echo "CWARNINGS=$CWARNINGS" >> _Makefile.header
1044 echo "COPTIM=$CFLAGS" >> _Makefile.header
1045 echo "INCLUDE=$INCLUDE" >> _Makefile.header
1046 echo "DINCLUDE=$DINCLUDE" >> _Makefile.header
1047 echo "CC=$CC" >> _Makefile.header
1048 echo "OTHERLIBS=$OTHERLIBS" >> _Makefile.header
1049 echo "" >> _Makefile.header
1050
1051
1052 printf "Regression test setup: (not really needed to build gxemul)\n"
1053
1054
1055 ## 64-bit HPPA cross-assembler:
1056 #
1057 #HPPA=''
1058 #if [ z$ENABLEHPPA = zYES ]; then
1059 # printf "Checking for a GNU cross-assembler for 64-bit HPPA... "
1060 # echo 'nop' > _testprog.s
1061 #
1062 # for HPPA_TRY in hppa64-unknown-elf hppa64-elf; do
1063 # printf '#!/bin/sh\n'$HPPA_TRY'-as _testprog.s' > _test.sh
1064 # printf ' -o _testprog.o\n' >> _test.sh
1065 # chmod 755 _test.sh
1066 # rm -f _testprog.o
1067 # ./_test.sh > /dev/null 2> /dev/null
1068 # if [ -f _testprog.o ]; then
1069 # HPPA=$HPPA_TRY
1070 # break
1071 # fi
1072 # rm -f _testprog.o
1073 # done
1074 #
1075 # if [ z$HPPA = z ]; then
1076 # echo "none"
1077 # else
1078 # echo $HPPA"-gcc"
1079 # fi
1080 #fi
1081 #rm -f _testprog* _test.sh
1082 #
1083 ## TODO: are these ok? 64-bit mode!
1084 ##echo "HPPA_CC="$HPPA"-gcc -g -O2 -fno-builtin -fschedule-insns" \
1085 ## >> _Makefile.header
1086 #echo "HPPA_AS="$HPPA"-as " >> _Makefile.header
1087 #echo "HPPA_LD="$HPPA"-ld -Ttext 0xa800000000030000 -e main" \
1088 # "--oformat=elf64-bigmips" >> _Makefile.header
1089 #echo "" >> _Makefile.header
1090
1091
1092 # 64-bit MIPS cross-compiler:
1093
1094 MIPS=''
1095 if [ z$ENABLEMIPS = zYES ]; then
1096 printf "Checking for a GNU cross-compiler for 64-bit MIPS... "
1097 echo 'int f(int x) { return x; }' > _testprog.c
1098
1099 for MIPS_TRY in mips64-unknown-elf mips64-elf mips-unknown-elf64; do
1100 printf '#!/bin/sh\n'$MIPS_TRY'-gcc _testprog.c -c\n' > _test.sh
1101 chmod 755 _test.sh
1102 rm -f _testprog.o
1103 ./_test.sh > /dev/null 2> /dev/null
1104 if [ -f _testprog.o ]; then
1105 MIPS=$MIPS_TRY
1106 break
1107 fi
1108 rm -f _testprog.o
1109 done
1110
1111 if [ z$MIPS = z ]; then
1112 echo "none"
1113 else
1114 echo $MIPS"-gcc"
1115 fi
1116 fi
1117 rm -f _testprog* _test.sh
1118
1119 echo "MIPS_CC="$MIPS"-gcc -g -O2 -fno-builtin -fschedule-insns" \
1120 "-mips64 -mabi=64" >> _Makefile.header
1121 echo "MIPS_AS="$MIPS"-as -mabi=64 -mips64" >> _Makefile.header
1122 echo "MIPS_LD="$MIPS"-ld -Ttext 0xa800000000030000 -e main" \
1123 "--oformat=elf64-bigmips" >> _Makefile.header
1124 echo "" >> _Makefile.header
1125
1126
1127 ## PPC64 cross-assembler:
1128 #
1129 #PPC=''
1130 #if [ z$ENABLEPPC = zYES ]; then
1131 # printf "Checking for a GNU cross-assembler for 64-bit PPC... "
1132 # echo 'nop' > _testprog.s
1133 #
1134 # for a in ppc64 powerpc64; do
1135 # for b in unknown; do
1136 # for c in elf elf64 linux linux64 aix aix5; do
1137 # PPC_TRY=$a-$b-$c
1138 # printf '#!/bin/sh\n'$PPC_TRY'-as _testprog.s' > _test.sh
1139 # printf ' -o _testprog.o\n' >> _test.sh
1140 # chmod 755 _test.sh
1141 # rm -f _testprog.o
1142 # ./_test.sh > /dev/null 2> /dev/null
1143 # if [ -f _testprog.o ]; then
1144 # PPC=$PPC_TRY
1145 # break
1146 # fi
1147 # rm -f _testprog.o
1148 # done
1149 # done
1150 # done
1151 #
1152 # if [ z$PPC = z ]; then
1153 # echo "none"
1154 # else
1155 # echo $PPC"-as"
1156 # fi
1157 #fi
1158 #rm -f _testprog* _test.sh
1159 #
1160 ##echo "PPC_CC="$PPC"-gcc -g -O2 -fno-builtin" >> _Makefile.header
1161 #echo "PPC_AS="$PPC"-as" >> _Makefile.header
1162 #echo "PPC_LD="$PPC"-ld -e main" >> _Makefile.header
1163 #echo "" >> _Makefile.header
1164
1165
1166 ## SPARC64 cross-compiler:
1167 #
1168 #SPARC=''
1169 #if [ z$ENABLESPARC = zYES ]; then
1170 # printf "Checking for a GNU cross-compiler for 64-bit SPARC... "
1171 # echo 'int f(int x) { return x; }' > _testprog.c
1172 #
1173 # for a in sparc64; do
1174 # for b in unknown; do
1175 # for c in elf elf64; do
1176 # SPARC_TRY=$a-$b-$c
1177 # printf '#!/bin/sh\n'$SPARC_TRY'-gcc _testprog.c -c' > _test.sh
1178 # printf ' -o _testprog.o\n' >> _test.sh
1179 # chmod 755 _test.sh
1180 # rm -f _testprog.o
1181 # ./_test.sh > /dev/null 2> /dev/null
1182 # if [ -f _testprog.o ]; then
1183 # SPARC=$SPARC_TRY
1184 # break
1185 # fi
1186 # rm -f _testprog.o
1187 # done
1188 # done
1189 # done
1190 #
1191 # if [ z$SPARC = z ]; then
1192 # echo "none"
1193 # else
1194 # echo $SPARC"-gcc"
1195 # fi
1196 #fi
1197 #rm -f _testprog* _test.sh
1198 #
1199 #echo "SPARC_CC="$SPARC"-gcc -g -O2 -fno-builtin" >> _Makefile.header
1200 #echo "SPARC_AS="$SPARC"-as" >> _Makefile.header
1201 #echo "SPARC_LD="$SPARC"-ld -e main" >> _Makefile.header
1202 #echo "" >> _Makefile.header
1203
1204
1205 # Create the Makefiles:
1206
1207 for a in . src src/devices src/devices/fonts tests; do
1208 echo "creating $a/Makefile"
1209 touch $a/Makefile
1210 cat _Makefile.header > $a/Makefile
1211 cat $a/Makefile.skel >> $a/Makefile
1212 done
1213
1214 # Tail of config.h:
1215 printf "\n#endif /* CONFIG_H */\n" >> config.h
1216
1217 # Remove temporary Makefile header:
1218 rm -f _Makefile.header
1219
1220 echo Configured. You may now run make to build gxemul.

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26