diff --git a/Math/MAT3geom.c b/Math/MAT3geom.c
index d07728d6f..93e754b12 100644
--- a/Math/MAT3geom.c
+++ b/Math/MAT3geom.c
@@ -6,7 +6,7 @@
  * on matrices.
  * -------------------------------------------------------------------------*/
 
-#include "mat3defs.h"
+#include <Math/mat3defs.h>
 
 /* --------------------------  Static Routines	---------------------------- */
 
diff --git a/Math/MAT3inv.c b/Math/MAT3inv.c
index b787b8b78..874b2f3b0 100644
--- a/Math/MAT3inv.c
+++ b/Math/MAT3inv.c
@@ -4,7 +4,7 @@
  * This file contains routines that operate solely on matrices.
  * -------------------------------------------------------------------------*/
 
-#include "mat3defs.h"
+#include <Math/mat3defs.h>
 
 /* --------------------------  Static Routines	---------------------------- */
 
diff --git a/Math/MAT3mat.c b/Math/MAT3mat.c
index 5c74e01be..42ba9814c 100644
--- a/Math/MAT3mat.c
+++ b/Math/MAT3mat.c
@@ -6,7 +6,7 @@
  * -------------------------------------------------------------------------*/
 
 #include <string.h>
-#include "mat3defs.h"
+#include <Math/mat3defs.h>
 
 #ifdef WIN32
 #include <memory.h>      /* required for memset() and memcpy() */
diff --git a/Math/MAT3vec.c b/Math/MAT3vec.c
index a971ebe10..24f2939af 100644
--- a/Math/MAT3vec.c
+++ b/Math/MAT3vec.c
@@ -19,7 +19,7 @@
  * The two vectors involved may be the same.
  */
 
-#include "mat3.h"
+#include <Math/mat3.h>
 
 #ifndef TRUE
 #  define TRUE 1
diff --git a/Math/Makefile b/Math/Makefile
index cb0510d83..c5c62aa30 100644
--- a/Math/Makefile
+++ b/Math/Makefile
@@ -23,103 +23,17 @@
 # (Log is kept at end of this file)
 #---------------------------------------------------------------------------
 
+ARLIBRARY = libMath.a
+TARGETS = $(ARLIBRARY) geotest
 
-TARGET = libMath.a
+CFILES = MAT3geom.c MAT3inv.c MAT3mat.c MAT3vec.c fg_geodesy.c fg_random.c polar.c vector.c
+CXXFILES = 
 
-CFILES = MAT3geom.c MAT3inv.c MAT3mat.c MAT3vec.c fg_geodesy.c fg_random.c \
-	 polar.c vector.c
-OFILES = $(CFILES:.c=.o)
+LDIRT = $(FG_ROOT_LIB)/$(ARLIBRARY)
 
+include $(FG_ROOT_SRC)/commondefs
 
-include ../make.inc
+geotest: geotest.o $(ARLIBRARY)
+	$(CC) $(LDFLAGS) -o $@ $< -lMath -lm -lc
 
-
-CFLAGS = $(FG_CFLAGS)
-
-
-#---------------------------------------------------------------------------
-# Primary Targets
-#---------------------------------------------------------------------------
-
-$(TARGET): $(OFILES)
-	$(AR) rv $(TARGET) $(OFILES)
-	$(RANLIB) $(TARGET)
-
-all: $(TARGET)
-
-clean:
-	rm -f *.o $(TARGET) lib*.a *.os2 *~ core
-
-
-#---------------------------------------------------------------------------
-# Secondary Targets
-#---------------------------------------------------------------------------
-
-include depend
-
-MAT3geom.o:
-	$(CC) $(CFLAGS) -c $< -o $@
-
-MAT3inv.o:
-	$(CC) $(CFLAGS) -c $< -o $@
-
-MAT3mat.o:
-	$(CC) $(CFLAGS) -c $< -o $@
-
-MAT3vec.o:
-	$(CC) $(CFLAGS) -c $< -o $@
-
-fg_geodesy.o:
-	$(CC) $(CFLAGS) -c fg_geodesy.c -o $@
-
-fg_random.o:
-	$(CC) $(CFLAGS) -c fg_random.c -o $@
-
-polar.o:
-	$(CC) $(CFLAGS) -c polar.c -o $@
-
-vector.o:
-	$(CC) $(CFLAGS) -c vector.c -o $@
-
-
-#---------------------------------------------------------------------------
-# $Log$
-# Revision 1.13  1997/12/22 04:14:33  curt
-# Aligned sky with sun so dusk/dawn effects can be correct relative to the sun.
-#
-# Revision 1.12  1997/07/31 22:52:27  curt
-# Working on redoing internal coordinate systems & scenery transformations.
-#
-# Revision 1.11  1997/07/30 16:04:08  curt
-# Moved random routines from Utils/ to Math/
-#
-# Revision 1.10  1997/07/20 02:19:11  curt
-# First stab at a system to generate os2 makefiles automatically.
-#
-# Revision 1.9  1997/07/12 02:24:46  curt
-# Added ranlib.
-#
-# Revision 1.8  1997/07/07 20:59:48  curt
-# Working on scenery transformations to enable us to fly fluidly over the
-# poles with no discontinuity/distortion in scenery.
-#
-# Revision 1.7  1997/07/05 20:43:31  curt
-# renamed mat3 directory to Math so we could add other math related routines.
-#
-# Revision 1.6  1997/06/27 21:38:14  curt
-# Working on Makefile structure.
-#
-# Revision 1.5  1997/06/27 20:03:40  curt
-# Working on Makefile structure.
-#
-# Revision 1.4  1997/06/26 19:08:38  curt
-# Restructuring make, adding automatic "make dep" support.
-#
-# Revision 1.3  1997/06/25 15:39:49  curt
-# Minor changes to compile with rsxnt/win32.
-#
-# Revision 1.2  1997/05/30 19:30:16  curt
-# The LaRCsim flight model is starting to look like it is working.
-#
-# Revision 1.1  1997/05/30 19:25:56  curt
-# The MAT3 routines from SRGP.
+include $(COMMONRULES)
diff --git a/Math/fg_geodesy.c b/Math/fg_geodesy.c
index ddb97bf04..aefb751ea 100644
--- a/Math/fg_geodesy.c
+++ b/Math/fg_geodesy.c
@@ -13,8 +13,8 @@
 
 #include <math.h>
 
-#include "fg_geodesy.h"
-#include "../Include/constants.h"
+#include <Math/fg_geodesy.h>
+#include <Include/constants.h>
 
 
 /* ONE_SECOND is pi/180/60/60, or about 100 feet at earths' equator */
@@ -140,6 +140,10 @@ void fgGeodToGeoc( double lat_geod, double alt, double *sl_radius,
 
 $Header$
 $Log$
+Revision 1.3  1998/01/19 19:27:12  curt
+Merged in make system changes from Bob Kuehne <rpk@sgi.com>
+This should simplify things tremendously.
+
 Revision 1.2  1997/12/15 23:54:54  curt
 Add xgl wrappers for debugging.
 Generate terrain normals on the fly.
@@ -197,10 +201,14 @@ Initial Flight Gear revision.
 
 
 /* $Log$
-/* Revision 1.2  1997/12/15 23:54:54  curt
-/* Add xgl wrappers for debugging.
-/* Generate terrain normals on the fly.
+/* Revision 1.3  1998/01/19 19:27:12  curt
+/* Merged in make system changes from Bob Kuehne <rpk@sgi.com>
+/* This should simplify things tremendously.
 /*
+ * Revision 1.2  1997/12/15 23:54:54  curt
+ * Add xgl wrappers for debugging.
+ * Generate terrain normals on the fly.
+ *
  * Revision 1.1  1997/07/31 23:13:14  curt
  * Initial revision.
  *
diff --git a/Math/mat3defs.h b/Math/mat3defs.h
index 34759c0d8..369ce25d8 100644
--- a/Math/mat3defs.h
+++ b/Math/mat3defs.h
@@ -1,8 +1,8 @@
 /* Copyright 1988, Brown Computer Graphics Group.  All Rights Reserved. */
 
 #include <stdio.h>
-/* #include "mat3err.h" */
-#include "mat3.h"
+/* #include <Math/mat3err.h> */
+#include <Math/mat3.h>
 
 /* -----------------------------  Constants  ------------------------------ */
 
diff --git a/Math/polar.c b/Math/polar.c
index aa67de508..3d8d7ba24 100644
--- a/Math/polar.c
+++ b/Math/polar.c
@@ -27,8 +27,8 @@
 #include <math.h>
 #include <stdio.h>
 
-#include "polar.h"
-#include "../Include/constants.h"
+#include <Math/polar.h>
+#include <Include/constants.h>
 
 
 /* we can save these values between calls for efficiency */
@@ -101,10 +101,14 @@ struct fgCartesianPoint fgRotateCartesianPoint(struct fgCartesianPoint p) {
 
 
 /* $Log$
-/* Revision 1.3  1997/12/15 23:54:54  curt
-/* Add xgl wrappers for debugging.
-/* Generate terrain normals on the fly.
+/* Revision 1.4  1998/01/19 19:27:12  curt
+/* Merged in make system changes from Bob Kuehne <rpk@sgi.com>
+/* This should simplify things tremendously.
 /*
+ * Revision 1.3  1997/12/15 23:54:54  curt
+ * Add xgl wrappers for debugging.
+ * Generate terrain normals on the fly.
+ *
  * Revision 1.2  1997/07/31 22:52:27  curt
  * Working on redoing internal coordinate systems & scenery transformations.
  *
diff --git a/Math/polar.h b/Math/polar.h
index 88e1b4abb..1e48966ba 100644
--- a/Math/polar.h
+++ b/Math/polar.h
@@ -28,7 +28,7 @@
 #define POLAR_H
 
 
-#include "../Include/types.h"
+#include <Include/types.h>
 
 
 /* Convert a polar coordinate to a cartesian coordinate.  Lon and Lat
@@ -63,10 +63,14 @@ struct fgCartesianPoint fgRotateCartesianPoint(struct fgCartesianPoint p);
 
 
 /* $Log$
-/* Revision 1.4  1997/12/15 23:54:55  curt
-/* Add xgl wrappers for debugging.
-/* Generate terrain normals on the fly.
+/* Revision 1.5  1998/01/19 19:27:13  curt
+/* Merged in make system changes from Bob Kuehne <rpk@sgi.com>
+/* This should simplify things tremendously.
 /*
+ * Revision 1.4  1997/12/15 23:54:55  curt
+ * Add xgl wrappers for debugging.
+ * Generate terrain normals on the fly.
+ *
  * Revision 1.3  1997/07/31 22:52:28  curt
  * Working on redoing internal coordinate systems & scenery transformations.
  *
diff --git a/Math/vector.c b/Math/vector.c
index ba2e3cfc6..0c0847e4e 100644
--- a/Math/vector.c
+++ b/Math/vector.c
@@ -27,9 +27,9 @@
 #include <math.h>
 #include <stdio.h>
 
-#include "vector.h"
+#include <Math/vector.h>
 
-#include "../Math/mat3.h"
+#include <Math/mat3.h>
 
 
 /* Map a vector onto the plane specified by normal */
@@ -78,9 +78,13 @@ void map_vec_onto_cur_surface_plane(MAT3vec normal, MAT3vec v0, MAT3vec vec,
 }
 
 /* $Log$
-/* Revision 1.1  1997/12/22 04:13:17  curt
-/* Initial revision.
+/* Revision 1.2  1998/01/19 19:27:13  curt
+/* Merged in make system changes from Bob Kuehne <rpk@sgi.com>
+/* This should simplify things tremendously.
 /*
+ * Revision 1.1  1997/12/22 04:13:17  curt
+ * Initial revision.
+ *
  */
 
 
diff --git a/Math/vector.h b/Math/vector.h
index c0f1be58b..234cf40b3 100644
--- a/Math/vector.h
+++ b/Math/vector.h
@@ -24,7 +24,7 @@
  **************************************************************************/
 
 
-#include "../Math/mat3.h"
+#include <Math/mat3.h>
 
 
 /* Map a vector onto the plane specified by normal */
@@ -33,7 +33,11 @@ void map_vec_onto_cur_surface_plane(MAT3vec normal, MAT3vec v0, MAT3vec vec,
 
 
 /* $Log$
-/* Revision 1.1  1997/12/22 04:13:18  curt
-/* Initial revision.
+/* Revision 1.2  1998/01/19 19:27:14  curt
+/* Merged in make system changes from Bob Kuehne <rpk@sgi.com>
+/* This should simplify things tremendously.
 /*
+ * Revision 1.1  1997/12/22 04:13:18  curt
+ * Initial revision.
+ *
  */
diff --git a/XGL/Makefile b/XGL/Makefile
index bcf606dcb..547c6f983 100644
--- a/XGL/Makefile
+++ b/XGL/Makefile
@@ -1,71 +1,11 @@
-#---------------------------------------------------------------------------
-# Makefile
-#
-# Written by Curtis Olson, started December 1997.
-#
-# Copyright (C) 1997  Curtis L. Olson  - curt@infoplane.com
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-# $Id$
-# (Log is kept at end of this file)
-#---------------------------------------------------------------------------
-
-
-TARGET = libXGL.a
+ARLIBRARY = libXGL.a
+TARGETS = $(ARLIBRARY)
 
 CFILES = xgl.c xglUtils.c
-OFILES = $(CFILES:.c=.o)
+CXXFILES =
 
+LDIRT = $(FG_ROOT_LIB)/$(ARLIBRARY)
 
-include ../make.inc
+include $(FG_ROOT_SRC)/commondefs
 
-
-CFLAGS = $(FG_CFLAGS)
-
-
-
-#---------------------------------------------------------------------------
-# Primary Targets
-#---------------------------------------------------------------------------
-
-$(TARGET): $(OFILES)
-	$(AR) rv $(TARGET) $(OFILES)
-	$(RANLIB) $(TARGET)
-
-all: $(TARGET)
-
-clean:
-	rm -f *.o $(TARGET) lib*.a *.os2 *~ core
-
-
-#---------------------------------------------------------------------------
-# Secondary Targets
-#---------------------------------------------------------------------------
-
-include depend
-
-xgl.o:
-	$(CC) $(CFLAGS) -c xgl.c -o $@
-
-xglUtils.o:
-	$(CC) $(CFLAGS) -c xglUtils.c -o $@
-
-
-#---------------------------------------------------------------------------
-# $Log$
-# Revision 1.1  1997/12/16 00:49:09  curt
-# Initial revision.
-#
+include $(COMMONRULES)