From 2702c90d7a39fca2a3319c5e915fd290cb31fc70 Mon Sep 17 00:00:00 2001 From: Radosław Kujawa Date: Fri, 17 Jul 2026 14:54:32 +0200 Subject: Initial import. --- docs/devinfo.html | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 240 insertions(+) create mode 100644 docs/devinfo.html (limited to 'docs/devinfo.html') diff --git a/docs/devinfo.html b/docs/devinfo.html new file mode 100644 index 0000000..c1ddea3 --- /dev/null +++ b/docs/devinfo.html @@ -0,0 +1,240 @@ + + +Development Notes + + + +

Development Notes

+ + +

Adding Extentions

+ +

+To add a new GL extension to Mesa you have to do at least the following. + +

+ + + +

Coding Style

+ +

+Mesa's code style has changed over the years. Here's the latest. +

+ +

+Comment your code! It's extremely important that open-source code be +well documented. Also, strive to write clean, easily understandable code. +

+ +

+3-space indentation +

+ +

+If you use tabs, set them to 8 columns +

+ +

+Brace example: +

+
+	if (condition) {
+	   foo;
+	}
+	else {
+	   bar;
+	}
+
+ +

+Here's the GNU indent command which will best approximate my preferred style: +

+
+	indent -br -i3 -npcs infile.c -o outfile.c
+
+ + +

+Local variable name example: localVarName (no underscores) +

+ +

+Constants and macros are ALL_UPPERCASE, with _ between words +

+ +

+Global vars not allowed. +

+ +

+Function name examples: +

+
+	glFooBar()       - a public GL entry point (in dispatch.c)
+	_mesa_FooBar()   - the internal immediate mode function
+	save_FooBar()    - retained mode (display list) function in dlist.c
+	foo_bar()        - a static (private) function
+	_mesa_foo_bar()  - an internal non-static Mesa function
+
+ + +

Writing a Device Driver

+ +

+XXX to do +

+ + + +

Making a New Mesa Release

+ +

+These are the instructions for making a new Mesa release. +

+ +

+Prerequisites (later versions may work): +

+ + +

+Be sure to do a "cvs update -d ." in the Mesa directory to +get all the latest files. +

+ +

+Update the version definitions in src/version.h +

+ +

+Create/edit the docs/RELNOTES-X.Y file to document what's new in the release. +Edit the docs/VERSIONS file too. +

+ +

+Edit Make-config and change the MESA_MAJOR and/or MESA_MINOR versions. +

+ +

+Edit the GNU configure stuff to change versions numbers as needed: +Update the version string (second argument) in the line +"AM_INIT_AUTOMAKE(Mesa, 3.3)" in the configure.in file. +

+ +

+Remove the leading `dnl' from the line "dnl AM_MAINTAINER_MODE". +

+ +

+Verify the version numbers near the top of configure.in +

+ +

+Run "fixam -f" to disable automatic dependency tracking. +

+ +

+Run the bootstrap script to generate the configure script. +

+ +

+Edit Makefile.X11 and verify DIRECTORY is set correctly. The Mesa +sources must be in that directory (or there must be a symbolic link). +

+ +

+Edit Makefile.X11 and verify that LIB_NAME and DEMO_NAME are correct. +If it's a beta release, be sure the bump up the beta release number. +

+ +

+cp Makefile.X11 to Makefile so that the old-style Mesa makefiles +still work. ./configure will overwrite it if that's what the user runs. +

+ +

+Make a symbolic link from $(DIRECTORY) to Mesa. For example, +ln -s Mesa Mesa-3.3 This is needed in order to make a correct +tar file in the next step. +

+ +

+Make the distribution files. From inside the Mesa directory: +

+	make -f Makefile.X11 lib_tar
+	make -f Makefile.X11 demo_tar
+	make -f Makefile.X11 lib_zip
+	make -f Makefile.X11 demo_zip
+
+ +

+Copy the distribution files to a temporary directory, unpack them, +compile everything, and run some demos to be sure everything works. +

+ +

+Upload the *.tar.gz and *.zip files to ftp.mesa3d.org +

+ +

+Update the web site. +

+ +

+Make an announcement on the mailing lists: +mesa3d-dev@lists.sf.net, +mesa3d-users@lists.sf.net +and +mesa3d-announce@lists.sf.net +

+ + +

Autoconf info

+ +

+In order to run the bootstrap script you'll need: +

+

+autoconf 2.50
+automake 1.4-p5
+libtool 1.4
+
+ + + + -- cgit