Re: New AS feature?

Guylhem Aznar (ciguylhem@barberouge.linux.lmm.com)
Thu, 6 Aug 1998 09:05:20 +0200


On Wed, Aug 05, 1998 at 07:27:33PM -0500, J. Neil Doane wrote:
> Well, in light of the heated discourse over the last couple of days
> regarding AS1.0 vs AS1.!0 I do have a suggestion, I guess for Guylhem more
> than anyone, but it'd be interesting to hear opinions from other folks
> about it: why not set up a nice pre-compile-time configuration script
> that lets you pick and choose what features you want in your AS.  Like if

In 1.5pre6, ./configure already does this : each options is carefully
explained, and you can also jump to next section.

> you think looks and feels just aren't neccessary, you could disable it
> before you compiled AS and in "your" AS you wouldn't have to have the
> added bloat of that feature?  You could, say, select initially what type
> of configuration you want..if you felt GNUStep-compliance wasn't something
> you care, you just disable it in the configuration script and presto, your
> binary of AS doesn't support it.  I mean, this is a feature we love from
> our kernel, being able to streamline it to our specifications and use only
> the features that are useful to us...why not have the same thing in our
> window manager?  And what's more, if you find that someday GNUStep
> compliance (for instance) is something you need, just as in kernel
> recompilation you can just return to the source, make the changes in the
> configuration utility, and recompile/reinstall.  I can certainly see where
> people with low-end machines, people who don't want the extra spice of a 
> certain option, or people who just want the very fastest performance from
> their window manager might like this option (which could let them take
> advantage of any good code rewrites in later AS versions that come along
> but allow them the ability not to use stuff they aren't interested in.)
> Again, it's just an idea...but I'd be interested in seeing what people
> think of it.

It is already done, I included here current configure.in (devels run
autoconf to create ./configure from a configure.in)

Tell me which options would you like to add.
 
1.0 users could *especially* say what else whould they like, or they can
also join coders team.

> Neil Doane

-- 
 "Always pass on good advice. It is never any use to oneself"   -- Oscar Wilde
		   Enlever rrremovethis / Remove rrremovethis
      Salut / Best regards, Guylhem AZNAR <guylhem@rrremovethis.oeil.qc.ca>

dnl# -*- sh -*-
dnl# Process this file with autoconf to produce a configure script.
dnl#
dnl#Copyright (c) 1998 Juergen Sawinski <Juergen.Sawinski@urz.uni-heidelberg.de>
dnl#Copyright (c) 1997 1998 Guylhem AZNAR <guylhem@oeil.qc.ca>

AC_INIT(src/afterstep/afterstep.c)
AC_CONFIG_AUX_DIR(autoconf)
AC_CONFIG_HEADER(config.h:autoconf/config.h.in)

dnl# Check for headers

AC_HEADER_DIRENT
AC_HEADER_TIME
AC_CHECK_HEADERS(sys/wait.h sys/time.h sys/statvfs.h sys/vfs.h sys/mount.h)
AC_CHECK_HEADERS(ustat.h machine/soundcard.h linux/soundcard.h linux/radio.h)

dnl# Checks for programs

AC_PROG_LEX
AC_PROG_YACC
AC_CHECK_PROG(sgmltools, sgmltools, HAVE_SGMLTOOLS, NO_SGMLTOOLS)

dnl# Checks for functions

AC_FUNC_WAIT3
AC_CHECK_FUNCS(uname gethostname statvfs)
VT_FIND_LIBXPM

dnl# Variable strings declaration

AC_SUBST(XPM_LIBS)
AC_SUBST(version)
AC_SUBST(bin_dir)
AC_SUBST(mod_dir)
AC_SUBST(man_dir)
AC_SUBST(share_dir)
AC_SUBST(gnustep)
AC_SUBST(gnusteplib)
AC_SUBST(after_dir)
AC_SUBST(xpm_dir)
AC_SUBST(bpm_dir)
AC_SUBST(sgmltools)
AC_SUBST(ximageloader)
AC_SUBST(helpcommand)
AC_SUBST(defaultstartmenusort)
AC_SUBST(usedesktops)
AC_SUBST(deskgeometry)
AC_SUBST(anim_step)
AC_SUBST(anim_step_main)
AC_SUBST(anim_delay)
AC_SUBST(differentlooknfeelforeachdesktop)
AC_SUBST(no_newlook)
AC_SUBST(no_icon_background)
AC_SUBST(no_i18n)
AC_SUBST(no_warppointertomenu)
AC_SUBST(no_savewindows)
AC_SUBST(no_makemenusonboot)
AC_SUBST(no_makestartmenu)
AC_SUBST(no_texture)
AC_SUBST(no_shade)
AC_SUBST(no_virtual)
AC_SUBST(no_saveunders)
AC_SUBST(no_windowlist)
AC_SUBST(no_shape)

dnl# Ask some compile-time options

version="1.5.0 (beta)"
bin_dir="/usr/local/bin"
mod_dir="/usr/local/bin"
man_dir="/usr/local/man/man1"
share_dir="/usr/local/share/afterstep"
gnustep="~/GNUstep/"
gnusteplib="~/GNUstep/Library"
after_dir="~/GNUstep/Library/AfterStep"
xpm_dir="/usr/X11R6/include/X11/pixmaps"
bpm_dir="/usr/X11R6/include/X11/bitmaps"
ximageloader="xli -onroot -quiet -colors 20"
helpcommand="xiterm -e man"
defaultstartmenusort="SORTBYALPHA"
anim_step=5
anim_step_main=5
anim_delay=5
differentlooknfeelforeachdesktop=0
usedesktops=3
deskgeometry="2x2"
no_newlook=1
no_icon_background=1
no_i18n=1
no_warppointertomenu=0
no_savewindows=0
no_makemenusonboot=0
no_makestartmenu=0
no_texture=0
no_shade=0
no_virtual=0
no_saveunders=0
no_windowlist=0
no_shape=0

echo
echo "There are some things to configure that depend on your personal taste."
echo
echo "DON'T RESPOND if you don't understand the question : default choice is kept"
echo

echo
echo -n "#1.    Do you want to change install path (n): "
read retval
if test "${retval}" = "y" || test "${retval}" = "yes" ; then

 echo
 echo "Installation:"
 echo "--------------------------------------------------------------------"
 echo

 echo -n "* Install afterstep binaries in (${bin_dir}): "
 read retval
 if ! test "${retval}" = "" ; then
  bin_dir=${retval}
 fi

 echo -n "* Install afterstep modules in (${mod_dir}): "
 read retval
 if ! test "${retval}" = "" ; then
  mod_dir=${retval}
 fi

 echo -n "* Install afterstep manual pages in (${man_dir}): "
 read retval
 if ! test "${retval}" = "" ; then
  man_dir=${retval}
 fi

fi


echo
echo -n "#2.    Do you want to change configuration path (n): "
read retval
if test "${retval}" = "y" || test "${retval}" = "yes" ; then
 
 echo
 echo "Configuration paths:"
 echo "--------------------------------------------------------------------"
 echo

 echo -n "* System-wide path (${share_dir}): "
 read retval
 if ! test "${retval}" = "" ; then
  share_dir=${retval}
 fi

 echo -n "* Users GNUstep path (${gnustep}): "
 read retval
 if ! test "${retval}" = "" ; then
  gnustep=${retval}
 fi

 echo -n "* Users GNUstep Library path (${gnusteplib}): "
 read retval
 if ! test "${retval}" = "" ; then
  gnusteplib=${retval}
 fi

 echo -n "* Users AfterStep path (${after_dir}): "
 read retval
 if ! test "${retval}" = "" ; then
  after_dir=${retval}
 fi

 echo -n "* Minimum XPM pixmaps path (${xpm_dir}): "
 read retval
 if ! test "${retval}" = "" ; then
  xpm_dir=${retval}
 fi

 echo -n "* Minimum BPM bitmaps path (${bpm_dir}): "
 read retval
 if ! test "${retval}" = "" ; then
  bpm_dir=${retval}
 fi

fi


echo
echo -n "#3.    Do you want to change helpers applications (n): "
read retval
if test "${retval}" = "y" || test "${retval}" = "yes" ; then

 echo
 echo "Helpers applications:"
 echo "--------------------------------------------------------------------"
 echo


 echo "External program used by afterstep to display non XPM files like JPEG"
 echo "in root window background."
 echo "xli is faster, but some people will prefer xv (use xv -root -quit)"
 echo
 echo -n "* Use (${ximageloader}): "
 read retval
 if ! test "${retval}" = "" ; then
  ximageloader=${retval}
 fi

 echo
 echo "When you click with mouse button #2 on title button #1, manpage of the"
 echo "current program is displayed by an external program (xman can't be used)"
 echo
 echo -n "* Help command (${helpcommand}):"
 read retval
 if ! test "${retval}" = "" ; then
  helpcommand=${retval}
 fi

fi

echo
echo -n "#4.    Do you want to change look options (n): "
read retval
if test "${retval}" = "y" || test "${retval}" = "yes" ; then

 echo
 echo "Look:"
 echo "--------------------------------------------------------------------"
 echo

 echo "There are 3 ways of sorting options in start menu by default : only"
 echo "SORTBYALPHA, SORTBYDATE & SORTBYPUREALPHA are available for now"
 echo
 echo -n "* Default Start-menu sort mode (${defaultstartmenusort}):"
 read retval
 if ! test "${retval}" = "" ; then
  defaultstartmenusort=${retval}
 fi

 echo
 echo "Wharf animation speed : greater is smoother and slower, but must be >=1"
 echo "You may want to raise the following default values if your machine is"
 echo "fast or lower if it is slow, but you'd better edit wharf config. file"
 echo
 echo -n "* Animation steps for wharf folders (${anim_step}):"
 read retval
 if ! test "${retval}" = "" ; then
  anim_step=${retval}
 fi


 echo -n "* Animation steps for wharf main window (${anim_step_main}):"
 read retval
 if ! test "${retval}" = "" ; then
  anim_step_main=${retval}
 fi

 echo -n "* Animation delay in ms (${anim_delay}):"
 read retval
 if ! test "${retval}" = "" ; then
  anim_delay=${retval}
 fi

 echo
 echo "Restarting automagically with a different look & feel each time you"
 echo "change desktop with Pager (not by circulating windows !) is CPU hungry."
 echo "Not recommended on slow/loaded machines : barely usable on P2 or Alphas"
 echo
 if test ${differentlooknfeelforeachdesktop} = 0 ; then
   echo -n "* Use different look&feel for each desktop (no): "
 else
   echo -n "* Use different look&feel for each desktop (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       differentlooknfeelforeachdesktop=1
     ;;
     no|n)
       differentlooknfeelforeachdesktop=0
   esac
 fi

 echo
 echo "AfterStep now uses 4 pages on each of 4 the desktop by default"
 echo "Most of people like having these 15 extra screens, some don't."
 echo
 echo -n "* How many desks do you want to use ? (${usedesktops}+1): "
 read retval
 if ! test "${retval}" = "" ; then
  usedesktops=${retval}-1
 fi

 echo
 echo "Pages geometry for all desktop can be changed : by default it is a"
 echo "2x2 square, but you can make it become a 2x3 rectangle [tall] or a"
 echo "3x2 rectangle [wide] : this geometry applyies to each desktop"
 echo "Format is: (width)x(hight), for example : 2x2"
 echo
 echo -n "* Set desk geometry to (${deskgeometry}): "
 read retval
 if ! test "${retval}" = "" ; then
  deskgeometry=${retval}
 fi

fi


echo
echo -n "#5.    Do you want to change compile-time options (n): "
read retval
if test "${retval}" = "y" || test "${retval}" = "yes" ; then

 echo
 echo "Compile-time options:"
 echo "--------------------------------------------------------------------"
 echo

 echo "Would you like to use old look files and .steprc ?"
 echo "New inheritable looks should support old (look files and .steprc)"
 echo "but this option prevents compatibility problems with these old files"
 echo
 if test ${no_newlook} = 0 ; then
   echo -n "* Replace new look code by old look code (no): "
 else
   echo -n "* Replace new look code by old look code (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_newlook=1
     ;;
     no|n)
       no_newlook=0
   esac
 fi

 echo
 echo "Don't want background behind iconifyied windows & allow big icon ?"
 echo "Very nice looking, but not very nextish ! NOT FINISHED YET !!!"
 echo
 if test ${no_icon_background} = 0 ; then
   echo -n "* Disable old icon code -new is still experimental- (no): "
 else
   echo -n "* Disable old icon code -new is still experimental- (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_icon_background=1
     ;;
     no|n)
       no_icon_background=0
   esac
 fi

 echo
 echo "If you want to use I18N feature, just enable it, then you can use"
 echo "non-english fonts in window title, Icon, and Menu. but you have to set"
 echo "the locale appropriately before you start the window manager."
 echo
 if test ${no_i18n} = 0 ; then
   echo -n "* Disable i18n feature (no): "
 else
   echo -n "* Disable i18n feature (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_i18n=1
     ;;
     no|n)
       no_i18n=0
   esac
 fi

 echo
 echo "Do you want your mouse pointer to be automatically put in the center"
 echo "of a menu title when you open it ? This can be annoying for big menus"
 echo
 if test ${no_warppointertomenu} = 0 ; then
   echo -n "* Disable automatic pointer warps (no): "
 else
   echo -n "* Disable automatic pointer warps (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_warppointertomenu=1
     ;;
     no|n)
       no_warppointertomenu=0
   esac
 fi

 echo
 echo "If you don't want windows still opened when you close your session to"
 echo "be automatically reopened next time you start (seesions saving)"
 echo
 if test ${no_savewindows} = 0 ; then
   echo -n "* Disable windows saving on exit (no): "
 else
   echo -n "* Disable windows saving on exit (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_savewindows=1
     ;;
     no|n)
       no_savewindows=0
   esac
 fi

 echo
 echo "This will make AfterStep startup faster, but it will not update menus"
 echo "on each boot : you will have to click on Quit/Update Start Menu"
 echo "However, no one really needs to update menus on each boot"
 echo
 if test ${no_makemenusonboot} = 0 ; then
   echo -n "* Disable start menu updating on startup (no): "
 else
   echo -n "* Disable start menu updating on startup (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_makemenusonboot=1
     ;;
     no|n)
       no_makemenusonboot=0
   esac
 fi

 echo
 echo "If you don't want start menu to be rebuilt every time you start"
 echo "AfterStep but rather edit startmenu file by hand. Not recommended."
 echo
 if test ${no_makestartmenu} = 0 ; then
   echo -n "* Disable all start menu tree -use non-configurable/tmp/startmenu- (no): "
 else
   echo -n "* Disable all start menu tree -use non-configurable/tmp/startmenu- (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_makestartmenu=1
     ;;
     no|n)
       no_makestartmenu=0
   esac
 fi

 echo
 echo "Use this if you don't like gradients, for example on titlebars"
 echo "To disable icons background gradients, you must use new icon code too"
 echo
 if test ${no_texture} = 0 ; then
   echo -n "* Disable textures (no): "
 else
   echo -n "* Disable textures (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_texture=1
     ;;
     no|n)
       no_texture=0
   esac
 fi

 echo
 echo "Windows can be swallowed under their titlebar to save some place on the"
 echo "desktop : this is called shading"
 echo "If you do not want shade to be animated use this option"
 echo
 if test ${no_shade} = 0 ; then
   echo -n "* Disable shade (no): "
 else
   echo -n "* Disable shade (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_shade=1
     ;;
     no|n)
       no_shade=0
   esac
 fi

 echo
 echo "Omitting the virtual desktop breaks Pager module"
 echo "There should be no real need to define this"
 echo
 if test ${no_virtual} = 0 ; then
   echo -n "* Disable virtual desktop (no): "
 else
   echo -n "* Disable virtual desktop (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_virtual=1
     ;;
     no|n)
       no_virtual=0
   esac
 fi

 echo
 echo "Tells AfterStep not to request save unders for pop-up menus"
 echo "A quick test using monochrome X11 shows that save unders cost about 4K"
 echo "RAM, but saves a lot of window redraws if you have windows that take a"
 echo "while to refresh. For xcolor, I assume the cost is more like :"
 echo "4Kbytesx8 = 32Kbytes (256 color)."
 echo
 if test ${no_saveunders} = 0 ; then
   echo -n "* Disable saveunders (no): "
 else
   echo -n "* Disable saveunders (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_saveunders=1
     ;;
     no|n)
       no_saveunders=0
   esac
 fi

 echo
 echo "Causes built-in window-list (started on right clicking root window) to"
 echo "be omitted."
 echo "The window-list module WinList which can be used instead is slower !"
 echo
 if test ${no_windowlist} = 0 ; then
   echo -n "* Disable internal faster window list (no): "
 else
   echo -n "* Disable internal faster window list (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_windowlist=1
     ;;
     no|n)
       no_windowlist=0
   esac
 fi

 echo
 echo "If you don't want the Shaped window extensions, use this option."
 echo "Shaped window extensions seem to increase the window managers RSS by 60k"
 echo "They provide for leaving a title-bar on the window without a border"
 echo "If you dont use shaped window extension, you can either make your shaped"
 echo "windows undecorated, or live with a border and backdrop around all"
 echo "your shaped windows (oclock, xeyes)"
 echo "If you normally use a shaped window (xeyes or oclock), you might as"
 echo "well compile this extension in, since the memory cost is  minimal in"
 echo "this case (The shaped window shared libs will be loaded anyway ; if you"
 echo "don't normally use a shaped window, you have to decide for yourself"
 echo
 if test ${no_shape} = 0 ; then
   echo -n "* Disable shape transparency extensions (no): "
 else
   echo -n "* Disable shape transparency extensions (yes): "
 fi
 read retval
 if ! test "${retval}" = "" ; then
   case ${retval} in
     yes|y)
       no_shape=1
     ;;
     no|n)
       no_shape=0
   esac
 fi

fi

echo

dnl# Write results

AC_CONFIG_HEADER(config.h)
AC_OUTPUT(afterstep/autoexec afterstep/asmail afterstep/base.8bpp
afterstep/base.16bpp afterstep/base.24bpp afterstep/base.32bpp
afterstep/audio afterstep/compatibility afterstep/pager
doc/afterdoc/afterstepdoc src/aspostit/xpostit.h src/aspostit/app_defaults.h
include/configure.h compilation.h)

cd src/asclock
./configure
cd ../..
echo "


AfterStep $version is now hopefully configured:
Just run : xmkmf ; make Makefiles ; make
"

--
   WWW:   http://www.afterstep.org/
   FTP:   ftp://ftp.afterstep.org/
   MAIL:  http://www.caldera.com/linuxcenter/forums/afterstep.html