sweetmr@SCT60A.SUNYCT.EDU (michael sweet) (02/14/91)
Seems the _old_ version of the CMENU configuration script got stuck in the tar I put on vgr... Included at the end of this message is the correct script, which handles things *much* better. One other note: because IRIX is fairly BSD compatible, the config script incorrectly determines that IRIX is BSD-based. Just toggle it over to SYSV and all will work properly. (I'm still looking for a consistant way of determining BSD/SYSV; anyone have any ideas? It has to be something I can check for in a script, i.e. the existance of a file(s) or particular data structure in a header file...) Sorry about any problems! -Mike Sweet ------------------------------------------------------------------------------ "The only TASC (315) 724-1100 (voice) truth is that 555 French Road (315) 724-2031 (fax) there are no New Hartford, NY 13413 Internet: sweetmr@sct60a.sunyct.edu truths, only beliefs." Delphi: DODGECOLT ------------------------------------------------------------------------------ ---------- CMENU config program starts here! ---------- #! /bin/csh -f # # $Header$ # # $Log$ # # This is the configuration script for the CMENU library. It looks # at the host system and determines 1) the OS type [BSD or SYSV based], # 2) the CURSES level of support including line drawing chars and # display attributes, and 3) whether the host uses the termcap or # terminfo capability databases. # # So far, this has only been tested on the following systems: # # Gould Powernode/9000 series (UTX/32) - BSD # Sillicon Graphics 4D series (IRIX) - SYS V # Sun 3/xxx series (UNIX) - BSD # DEC VAX 11/7xx series (ULTRIX) - BSD # # # This script is probably FAR from perfect, and true hackers may know # more about the host than this script! :) For example, the current # release of UTX/32 (for the Gould series) has a SYS V curses library # accessible from the /usr/5lib and /usr/5include directories. # Unfortunately, this is not a standard practice, so I really _can't_ # work that in... :( # # -Mike Sweet 2/6/91 # # Copyright (c) 1990,1991 TASC # # Correspondence should be addressed to: # # TASC # 555 French Road # New Hartford, NY 13413 # Attn: Michael Sweet # # Voice: (315) 724-1100 # Fax: (315) 724-2031 # EMail: sweetmr@sct60a.sunyct.edu (Internet) # DODGECOLT (Delphi) # # # Permission is granted to distribute and use this software free of charge, # so long as the following conditions are met: # 1. The use or distribution of this software is provided free of charge, # or for the cost of the distribution medium. # 2. All files associated with this software are provided without # change during distribution. Pre-configuration of this software # is permitted, but the configuration script must still be included. # 3. All copyright notices remain intact, as well as comments and # revision information. # 3. All documentation remains unchanged. # # You MAY alter this software to meet your needs, however distribution of # altered software must be documented as such. # # TASC makes no warrentees as to the usuability or functioning of this # software. Support is not guaranteed, but is provided on a limited basis # via electronic correspondence only. # # echo "CMENU Configuration Program Version 1.0" echo "Copyright (c) 1990,1991 TASC" echo "by Mike Sweet 2/6/91" echo "" echo "Checking out your system. . ." # # Check for BSD/SYS V type systems... # if (-e /usr/include/dirent.h) then set x = "`grep direct /usr/include/dirent.h`" if ($#x > 0) then set OSTYPE = "BSD" else set OSTYPE = "SYSV" endif else set OSTYPE = "BSD" endif # # Check for a 'new' version of curses... # if (`grep A_BOLD /usr/include/curses.h`) then set OLDCURSES = 0 else set OLDCURSES = 1 endif # # Check for line drawing chars... # if (`grep ACS_ULCORNER /usr/include/curses.h`) then set ACS = 1 else set ACS = 0 endif # # Check for keyboard translation... # if (`grep KEY_MIN /usr/include/curses.h`) then set KEY = 1 else set KEY = 0 endif # # Check for terminfo/termcap databases... # if (-d /usr/lib/terminfo) then set TERMINFO = 1 else set TERMINFO = 0 endif # # Try to figure out what directory to put the man pages into... # if (-d /usr/man/local) then set MANDIR = "/usr/man/local" else if (-d /usr/catman/local) then set MANDIR = "/usr/catman/local" else if (-d /usr/man) then set MANDIR = "/usr/man" else set MANDIR = "/usr/catman" endif # # And then the library directory.... # if (-d /usr/lib/local) then set LIBDIR = "/usr/lib/local" else if (-d /usr/local/lib) then set LIBDIR = "/usr/local/lib" else set LIBDIR = "/usr/lib" endif # # And the include directory... # if (-d /usr/local/include) then set INCDIR = "/usr/local/include" else if (-d /usr/include/local) then set INCDIR = "/usr/include/local" else set INCDIR = "/usr/include" endif # # Now show what we know and ask the user some more questions... # menu: echo "" echo "" if ($OLDCURSES == 1) then echo "1) Curses (OLD)" else echo "1) Curses (NEW)" endif if ($TERMINFO == 1) then echo "2) Terminal Database (terminfo)" else echo "2) Terminal Database (termcap)" endif if ($ACS == 1) then echo "3) Line Drawing Support (YES)" else echo "3) Line Drawing Support (NO)" endif if ($KEY == 1) then echo "4) Special Key Mapping (YES)" else echo "4) Special Key Mapping (NO)" endif echo "5) Manual page directory = $MANDIR" echo "6) Library directory = $LIBDIR" echo "7) Header file directory = $INCDIR" echo "8) Operating System Type = $OSTYPE" echo "" echo "" echo "Enter a number to change an entry, 'quit' to quit CMENU configuration," echo -n "or type 'done' to finish the configuration---> " set x = $< switch ($x) case 1 : if ($OLDCURSES == 1) then set OLDCURSES = 0 else set OLDCURSES = 1 endif breaksw case 2 : if ($TERMINFO == 1) then set TERMINFO = 0 else set TERMINFO = 1 endif breaksw case 3 : if ($ACS == 1) then set ACS = 0 else set ACS = 1 endif breaksw case 4 : if ($KEY == 1) then set KEY = 0 else set KEY = 1 endif breaksw case 5 : echo "" echo "WARNING: I do not understand environment variables or ~\!" echo "" echo -n "New manual page directory? ---> " set y = $< if ("$y" != "") then set MANDIR = "$y" endif breaksw case 6 : echo "" echo "WARNING: I do not understand environment variables or ~\!" echo "" echo -n "New library directory? ---> " set y = $< if ("$y" != "") then set LIBDIR = "$y" endif breaksw case 7 : echo "" echo "WARNING: I do not understand environment variables or ~\!" echo "" echo -n "New header file directory? ---> " set y = $< if ("$y" != "") then set INCDIR = "$y" endif breaksw case 8 : if ($OSTYPE == "BSD") then set OSTYPE = "SYSV" else set OSTYPE = "BSD" endif breaksw case "done" : # create the header file 'sed' script... echo "" echo "Configuring the header file. . ." rm -f config.sed echo "s/OLDCURSES[ ]*[0-9]/OLDCURSES $OLDCURSES/g" > config.sed echo "s/TERMINFO[ ]*[0-9]/TERMINFO $TERMINFO/g" >> config.sed echo "s/ACSMAP[ ]*[0-9]/ACSMAP $ACS/g" >> config.sed echo "s/KEYMAP[ ]*[0-9]/KEYMAP $KEY/g" >> config.sed sed -f config.sed < cmenu.h >cmenu.h.new # then do the makefile 'sed' script... echo "" echo "Configuring the makefile. . ." rm -f config.sed echo "/^LIBDIR[ ]*=.*/c\" > config.sed echo "LIBDIR = $LIBDIR" >> config.sed echo "/^MANDIR[ ]*=.*/c\" >> config.sed echo "MANDIR = $MANDIR" >> config.sed echo "/^INCDIR[ ]*=.*/c\" >> config.sed echo "INCDIR = $INCDIR" >> config.sed echo "/^OSTYPE[ ]*=.*/c\" >> config.sed echo "OSTYPE = $OSTYPE" >> config.sed sed -f config.sed < makefile > makefile.new rm -f config.sed # finally, move the originals to '.old' and the new ones from '.new'... mv -f cmenu.h cmenu.h.old mv -f cmenu.h.new cmenu.h mv -f makefile makefile.old mv -f makefile.new makefile echo "" echo "Configuration complete. You may now type 'make install' to install" echo "the CMENU library." echo "" exit breaksw case "quit" : echo "" echo "Configuration aborted\!" echo "" exit default : echo "" echo "Please enter a number from 1 to 8, 'quit', or 'done'\!" echo "" breaksw endsw goto menu ----------- END OF CMENU CONFIG SCRIPT! ----------