% ./Configure (I see you are using the Korn shell. Some ksh's blow up on Configure, especially on exotic machines. If yours does, try the Bourne shell instead.) Beginning of configuration questions for perl kit. First let's make sure your kit is complete. Checking... Looks good... Checking your sh to see if it knows about # comments... Your sh handles # comments correctly. Okay, let's see if #! works on this system... It does. Checking out how to guarantee sh startup... Let's see if '#!/bin/sh' works... Yup, it does. Checking echo to see how to suppress newlines... ...using -n. Type carriage return to continue. Your cursor should be here--> This installation shell script will examine your system and ask you questions to determine how the perl package should be installed. If you get stuck on a question, you may use a ! shell escape to start a subshell or execute a command. Many of the questions will have default answers in square brackets--typing carriage return will give you the default. On some of the questions which ask for file or directory names you are allowed to use the ~name construct to specify the login directory belonging to "name", even if you don't have a shell which knows about that. Questions where this is allowed will be marked "(~name ok)". [Type carriage return to continue] Much effort has been expended to ensure that this shell script will run on any Unix system. If despite that it blows up on you, your best bet is to edit Configure and run it again. Also, let me (lwall@netlabs.com) know how I blew it. If you can't run Configure for some reason, you'll have to generate a config.sh file by hand. This installation script affects things in two ways: 1) it may do direct variable substitutions on some of the files included in this kit, and 2) it builds a config.h file for inclusion in C programs. You may edit any of these files as the need arises after running this script. If you make a mistake on a question, there is no easy way to back up to it currently. The easiest thing to do is to edit config.sh and rerun all the SH files. Configure will offer to let you do this before it runs the SH files. [Type carriage return to continue] Locating common programs... cat is in /bin/cat. cp is in /bin/cp. echo is in /bin/echo. expr is in /bin/expr. grep is in /usr/bin/grep. mkdir is in /bin/mkdir. mv is in /bin/mv. rm is in /bin/rm. sed is in /usr/bin/sed. sort is in /usr/bin/sort. tr is in /usr/bin/tr. uniq is in /usr/bin/uniq. Don't worry if any of the following aren't found... I don't see Mcc out there, offhand. I don't see bison out there, either. cpp is in /usr/bin/cpp. csh is in /bin/csh. egrep is in /usr/bin/egrep. I don't see line out there, either. nroff is in /usr/bin/nroff. perl is in /usr/bin/perl. test is in /bin/test. uname is in /usr/bin/uname. yacc is in /usr/bin/yacc. Checking compatibility between /bin/echo and builtin echo (if any)... They are compatible. In fact, they may be identical. I see a config.sh file. Did Configure make it on THIS system? [n] OK, I'll ignore it. First time through, eh? I have some defaults handy for the following systems: 3b1 dynix isc_3_2_3 sco_2_3_3 ti1500 3b2 fps mc6000 sco_2_3_4 titan aix_rs genix mips sco_3 ultrix_1 aix_rt greenhills mpc sgi ultrix_3 altos486 hp9000_300 ncr_tower solaris_2_0 ultrix_4 apollo_C6_7 hp9000_400 next stellar unisysdynix apollo_C6_8 hp9000_700 opus sunos_3_4 utekv aux hp9000_800 osf1 sunos_3_5 uts cray hpux sco_2_3_0 sunos_4_0_1 vax dgux i386 sco_2_3_1 sunos_4_0_2 dnix isc_3_2_2 sco_2_3_2 svr4 (You may give one or more space-separated answers, or "none" if appropriate. If your OS version has no hints, do not give a wrong version--say "none".) Which of these apply, if any? [none] perl has manual pages available in source form. If you don't want the manual sources installed, answer 'none'. Where do the manual pages (source) go (~name ok)? [/usr/local/man/man1] /home/local/perl4/man/man1 Directory /home/local/perl4/man/man1 doesn't exist. Use that name anyway? [n] y Hmm... Doesn't look like a MIPS system. Where are the include files you want to use? [/usr/include] Looks kind of like a BSD system, but we'll see... Congratulations. You aren't running Eunice. It's not Xenix... Nor is it Venix... Some systems have different model sizes. On most systems they are called small, medium, large, and huge. On the PDP11 they are called unsplit and split. If your system doesn't support different memory models, say "none". If you wish to force everything to one memory model, say "none" here and put the appropriate flags later when it asks you for other cc and ld flags. Venix systems may wish to put "none" and let the compiler figure things out. (In the following question multiple model names should be space separated.) Which models are supported? [none] Use which C compiler? [cc] Some C compilers have problems with their optimizers, by default, perl compiles with the -O flag to use the optimizer. Alternately, you might want to use the symbolic debugger, which uses the -g flag (on traditional Unix systems). Either flag can be specified here. To use neither flag, specify the word "none". What optimizer/debugger flag should be used? [-O] Your C compiler may want other flags. For this question you should include -I/whatever and -DWHATEVER flags and any other flags used by the C compiler, but you should NOT include libraries or ld flags like -lwhatever. For instance, this would be a good place to specify -DDEBUGGING. To use no flags, specify the word "none". Any additional cc flags? [none] Any additional ld flags (NOT including libraries)? [none] Checking for optional libraries... No -lc_s. No -lnet_s. No -lnet. No -lsocket. No -lnsl_s. No -lnsl. No -lnm. No -lndir. No -ldir. No -lndbm. No -ldbm. No -lPW. No -lmalloc. No -lsun. Found -lm. No -lbsd. No -lBSD. No -lx. No -lposix. No -lucb. Some versions of Unix support shared libraries, which make executables smaller but make load time slightly longer. On some systems, mostly newer Unix System V's, the shared library is included by putting the option "-lc_s" as the last thing on the cc command line when linking. Other systems use shared libraries by default. There may be other libraries needed to compile perl on your machine as well. If your system needs the "-lc_s" option, include it here. Include any other special libraries here as well. Say "none" for none. Any additional libraries? [-lm] Checking alignment constraints... Doubles must be aligned on a how-many-byte boundary? [4] The following questions distinguish the directory in which executables reside from the directory in which they are installed (and from which they are presumably copied to the former directory by occult means). This distinction is often necessary under afs. On most other systems, however, the two directories are the same. In which directory will public executables reside (~name ok)? [/usr/local/bin] /home/local/perl4/bin Directory /home/local/perl4/bin doesn't exist. Use that name anyway? [n] y In which directory will public executables be installed (~name ok)? [/home/local/perl4/bin] Directory /home/local/perl4/bin doesn't exist. Use that name anyway? [n] y In the following, larger digits indicate more significance. A big-endian machine like a Pyramid or a Motorola 680?0 chip will come out to 4321. A little-endian machine like a Vax or an Intel 80?86 chip would be 1234. Other machines may have weird orders like 3412. A Cray will report 87654321. If the test program works the default is probably right. I'm now running the test program... (The test program ran ok.) What is the order of bytes in a long? [1234] Checking to see if your C compiler can cast weird floats to unsigned Yup, it does. Now, how can we feed standard input to your C preprocessor... Maybe "cc -E" will work... Nope...maybe "cc -E -" will work... Yup, it does. Your (shared) C library seems to be in /usr/lib/libc.so. If the guess above is wrong (which it might be if you're using a strange compiler, or your machine supports multiple models), you can override it here. Your C library is where? [/usr/lib/libc.so] /usr/lib/libc.a Extracting names from the following files for later perusal: /usr/lib/libc.a /usr/lib/libm.a This may take a while...done bcmp() found bcopy() found Checking to see if your bcopy() can do overlapping copies... It can. bzero() found Your sprintf() returns (int). vprintf() found. Your vsprintf() returns (int). chsize() NOT found readdir() found dirent.h found. Some sites have disabled setuid #! scripts because of a bug in the kernel that prevents them from being secure. If you are on such a system, the setuid/setgid bits on scripts are currently useless. It is possible for perl to detect those bits and emulate setuid/setgid in a secure fashion until a better solution is devised for the kernel problem. Do you want to do setuid/setgid emulation? [n] dup2() found fchmod() found fchown() found fcntl() found You can have filenames longer than 14 characters. flock() found getgroups() found gethostent() found getpgrp() found getpgrp2() NOT found getpriority() found htonl() found Your system has both index() and strchr(). Shall I use index() rather than strchr()? [y] isascii() found killpg() found lstat() found memcmp() found memcpy() found Checking to see if your memcpy() can do overlapping copies... It can. memmove() found memset() found mkdir() found msgctl() found msgget() found msgsnd() found msgrcv() found You have the full msg*(2) library. Do you wish to attempt to use the malloc that comes with perl? [y] n ndbm.h found. dbm.h NOT found. Looks like you have Berkeley networking support. sys/file.h defines the O_* constants... and you have the 3 argument form of open(). pwd.h found. rename() found rewinddir() found rmdir() found seekdir() found select() found semctl() found semget() found semop() found You have the full sem*(2) library. setegid() found seteuid() found setpgrp() found setpgrp2() NOT found setpriority() found setregid() found setresgid() found setreuid() found setresuid() found setrgid() found setruid() found shmctl() found shmget() found shmat() found and shmat returns (void*) shmdt() found You have the full shm*(2) library. Your stat knows about block sizes. Your stdio isn't very std. Checking to see if your C compiler can copy structs... Yup, it can. strerror() found symlink() found syscall() found Testing to see which of <time.h>, <sys/time.h>, and <sys/select.h> should be included, because this application wants: struct timeval struct tm ctime(3) declarations I'm now running the test program... Trying -DI_SYS_TIME Succeeded with -DI_SYS_TIME telldir() found You have void (*signal())() instead of int. truncate() found vfork() found Checking to see if your C compiler knows about "volatile"... Yup, it does. wait4() found waitpid() found What type are groups ids returned by getgid(), etc.? [gid_t] (The following only matters if you have getgroups().) What type are the group ids returned by getgroups()? [gid_t] Checking to see how big your integers are... What is the size of an integer (in bytes)? [4] The perl package has some auxiliary files that should be reside in a library that is accessible by everyone. Where should these "private" but accessible files reside? (~name ok) [/usr/local/lib/perl] /home/local/perl4/lib On some systems (such as afs) you have to install the library files in a different directory to get them to go to the right place. Where should the library files be installed? (~name ok) [/home/local/perl4/lib] Checking to see how many bits your rand function produces... How many bits does your rand() function produce? [31] Some installations have a separate directory just for executable scripts so that they can mount it across multiple architectures but keep the scripts in one spot. You might, for example, have a subdirectory of /usr/share for this. Or you might just lump your scripts in with all your other executables. Where will publicly executable scripts reside (~name ok)? [/home/local/perl4/bin] Directory /home/local/perl4/bin doesn't exist. Use that name anyway? [n] y Some installations must install scripts in a different directory than where they will eventually reside. On most systems they're the same directory. Where do you install publicly executable scripts (~name ok)? [/home/local/perl4/bin] Directory /home/local/perl4/bin doesn't exist. Use that name anyway? [n] y Generating a list of signal names... Signals are: ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2 Your stdio uses signed chars. What type are user ids returned by getuid(), etc.? [uid_t] Checking to see how well your C compiler groks the void type... Support flag bits are: 1: basic void declarations. 2: arrays of pointers to functions returning void. 4: operations between pointers to and addresses of void functions. It appears to support void to the level perl wants (7). However, you might get some warnings that look like this: void.c: In function `main': void.c:2: warning: return type of `main' is not `int' Your void support flags add up to what? [7] Which compiler compiler (yacc or bison -y) will you use? [/usr/bin/yacc] We don't need to <fcntl.h> if we include <sys/file.h>. gdbm.h NOT found. grp.h found. netinet/in.h found. We'll be including <sys/file.h>. sys/ioctl.h found. utime.h found. varargs.h found. No vfork.h found. End of configuration questions. Creating config.sh... If you didn't make any mistakes, then just type a carriage return here. If you need to edit config.sh, do it as a shell escape here: Doing variable substitutions on .SH files... Extracting Makefile (with variable substitutions) Extracting c2ph (with variable substitutions) Extracting cflags (with variable substitutions) Extracting config.h (with variable substitutions) Extracting h2ph (with variable substitutions) Extracting makedepend (with variable substitutions) Extracting makedir (with variable substitutions) Extracting x2p/Makefile (with variable substitutions) Extracting cflags (with variable substitutions) Extracting find2perl (with variable substitutions) Extracting s2p (with variable substitutions) Now you need to generate make dependencies by running "make depend". You might prefer to run it in background: "make depend > makedepend.out &" It can take a while, so you might not want to run it right now. Run make depend now? [n] You must run 'make depend' then 'make'.