If you never build the X or FOX gates, you can delete this long
message now.  8-)

I started making some changes to our build trees a few weeks ago
to prepare for both Xorg 1.5 and for being able to build on Indiana.
One thing led to another, and before I knew it, it had turned into
my Third Annual X Open Source Makefile Overhaul (tm).

Even more astonishingly, this time I even wrote some documentation
on the results (attached to this message, will be checked into the
tree as open-src/README).

I'll be sending the changes out for code review soon (once I finish
fixing a few last build errors) and then I'll be setting up a hg repo
in the FOX project to start using them to test Xorg 1.5 pre-release
builds - so for now, this is mostly just a heads up and chance for
people to comment.

Big changes:

 - Instead of some variables being APP_* in app modules, LIB_* in
   lib modules, and other variables being LIB_* in all modules, all
   modules of all types now use the same variable names.   For boolean
   variables, they all take "yes" or "no", not "yes" for some and "true"
   for others.

 - There's just one way now to specify things like running autoreconf
   and man page "suntouching" flags, instead of some directories adding
   makefile targets, others setting variables, etc.

 - Rules that were the same or almost the same, but duplicated in
   multiple makefiles are now consolidated into a common set of rules
   to give us one place to make changes and the same behaviour everywhere.

 - All shell scripts & Makefiles now specify use of /bin/ksh93 as the
   shell instead of /bin/sh, so that build results are the same on
   Nevada (where /bin/sh is the old Bourne Shell) and on Indiana
   (where /bin/sh is replaced by ksh93).   Some changes have been made
   to them to better conform to the Shell Style guidelines from the
   OpenSolaris Shell project (mostly ones that improve performance or
   readability).

 - Specifying the compiler for a module to be Sun Studio or gcc is
   easier and cleaner, and changing the default to gcc should also
   be easier if someone was to be porting OpenSolaris X to a new platform.

 - Now that most components are migrated to open-src, and there are
   no dependencies on xc bits anymore, the "BEFOREX" and "AFTERX"
   lists to build part before the closed source xc gate, and part of
   it after are gone - there's just one list to build, and it's all
   built before the xc gate, which should also help us make sure the
   open builds are buildable without xc.

New features:

 - A "xmake" script is provided that will let you run builds in
   subdirectories with all the flags normally provided when run
   from the module directory - i.e. you don't have to just run
   make in open-src/xserver/xorg - you can run xmake in
   open-src/xserver/xorg/build_32/hw/xfree86/util/xorgcfg if that's
   all you want to rebuild.

 - A "find-build-errors" script is included that picks out the
   errors from the buildit and make_release packages logs and
   just prints those to make it easier to find the 10 lines of
   errors in the 16 megs of log files from a full build.

 - The version of a upstream source can be set to "git" to cause
   it to be checked out of git instead of using a tarball - this
   won't be allowed in code checked into the master gate, but will
   be useful for developers tracking upstream changes, such as in
   the afore-mentioned Xorg 1.5 pre-release porting gate I'll be
   setting up.

 - "make configure" will just run the configure script or equivalent
   (split out of the build step of the previous rules)

 - "make debug" and "make debug-install" will build and install
   binaries built with debug flags (-g) instead of optimization flags

and as a random bonus, I've migrated our mdb modules/scripts package
from the closed source portion of the tree to open-src/utils, which
includes the mdb modules to walk the clients and grabs lists in the
X server and scripts to run these to list all current clients and
current device/server grabs, and modified them to add Xorg support
to the existing Xsun code.   These aren't shipped in Solaris or
OpenSolaris, just provided as a tool for developers to debug with.

Plus, if you order now, this bonus knife will be yours for only...
wait, wrong script, never mind.

-- 
        -Alan Coopersmith-           alan.coopersmith at sun.com
         Sun Microsystems, Inc. - X Window System Engineering

-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: README
URL: 
<http://mail.opensolaris.org/pipermail/xwin-discuss/attachments/20080731/93487a87/attachment.ksh>

Reply via email to