diff options
author | Thomas Schwinge <tschwinge@gnu.org> | 2007-09-03 15:26:03 +0200 |
---|---|---|
committer | Thomas Schwinge <tschwinge@gnu.org> | 2007-09-03 15:28:06 +0200 |
commit | 855af9a0ee8d1bdebff882a62104134a71044dba (patch) | |
tree | 00a93447c5c045df3cc69375de884e76b065ad4a /microkernel/mach/mig | |
parent | 94aafdb76706abe3c0d2f0f06c8f37fbcdb1056e (diff) |
Break up `Mach' and `Mig' hierarchies, merge them into `microkernel/mach/', `microkernel/mach/gnumach/', `microkernel/mach/mig/', and elsewhere.
Diffstat (limited to 'microkernel/mach/mig')
-rw-r--r-- | microkernel/mach/mig/WebPreferences/logo.png | bin | 0 -> 23622 bytes | |||
-rw-r--r-- | microkernel/mach/mig/building.mdwn | 71 | ||||
-rw-r--r-- | microkernel/mach/mig/discussion.mdwn | 17 | ||||
-rw-r--r-- | microkernel/mach/mig/documentation.mdwn | 27 |
4 files changed, 115 insertions, 0 deletions
diff --git a/microkernel/mach/mig/WebPreferences/logo.png b/microkernel/mach/mig/WebPreferences/logo.png Binary files differnew file mode 100644 index 00000000..cdfec179 --- /dev/null +++ b/microkernel/mach/mig/WebPreferences/logo.png diff --git a/microkernel/mach/mig/building.mdwn b/microkernel/mach/mig/building.mdwn new file mode 100644 index 00000000..08a1c14b --- /dev/null +++ b/microkernel/mach/mig/building.mdwn @@ -0,0 +1,71 @@ +# <a name="Building_the_Mach_Interface_Gene"> Building the Mach Interface Generator from Source </a> + +If you want to build the Mach Interface Generator yourself instead of just using a pre-built package, follow these instructions. + +## <a name="Getting_the_Source_Code"> Getting the Source Code </a> + +You can chose between getting the [sources from the developers's rcs](http://www.gnu.org/software/hurd/mig-download.html#cvs): + + $ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co mig + +... or (if you are working on a Debian system) the ones that are used for the [current Debian mig package](http://packages.debian.net/source/unstable/mig): + + $ apt-get source mig + +Please see [[Distrib/DebianFAQ]] before using _apt-get source_. + +The unpacked source tree is around 1 MiB, and the build tree also is around 1 MiB. + +## <a name="Preparing_for_the_Build"> Preparing for the Build </a> + +### <a name="_on_Debian_systems"> ... on Debian systems </a> + +Building the Mach Interface Generator requires the _build-essential_ and _fakeroot_ packages, their dependencies and additional packages that are specified by the source mig package: + + # apt-get install build-essential fakeroot + # apt-get build-dep mig + +### <a name="_on_non_Debian_systems"> ... on non-Debian systems </a> + +Building the Mach Interface Generator requires a C compiler, a standard C library (with corresponding header files) and your favourite flavor of awk (gawk), yacc (bison), lex (flex) and make. + +Additionally, you need to have GNU Mach's header files installed. See [[mach/gnumach/building]] about how to do that, then come back here. + +## <a name="Building_and_Installing"> Building and Installing </a> + +### <a name="_a_deb_file"> ... a _.deb_ file </a> + +Change into the directory with the downloaded / unpacked MIG sources (_mig-1.3.1.99_): + + $ cd mig-1.3.1.99 + +Start the build process: + + $ dpkg-buildpackage -us -uc -b -rfakeroot + +You can then install / distribute the _.deb_ file which will drop out one directory above the current one. + +### <a name="_TODO_"> [TODO] </a> + +The Mach Interface Generator has to be built in a separate directory: + + $ mkdir mig-build + $ cd mig-build + +Find the root directory where you installed GNU Mach's header files and where you now intend to install the Mach Interface Generator (_~/gnu_) and the path to your Mach Interface Generator sources (\_[...]/mig) and configure it: + + $ GNU=~/gnu + $ TARGET_CPPFLAGS=-I"$GNU"/include [...]/mig/configure --prefix="$GNU" + +Build and install the Mach Interface Generator into _$GNU_, i.e. _~/gnu/_ in our example: + + $ make all install + +To make your _mig_ binary easily available, you should append something like the following to e.g. your _~/.bash\_profile_: + + PATH=~/gnu/bin:$PATH + export PATH + +If you already have e.g. _~/bin_ in your _$PATH_, you could also create a symbolic link: + + $ ln -s ~/gnu/bin/mig ~/bin/ diff --git a/microkernel/mach/mig/discussion.mdwn b/microkernel/mach/mig/discussion.mdwn new file mode 100644 index 00000000..fdab3a45 --- /dev/null +++ b/microkernel/mach/mig/discussion.mdwn @@ -0,0 +1,17 @@ +Created + +-- [[Main/JoachimNilsson]] - 29 Oct 2002 + +The logo seems very programmer friendly as this web topic is intended. + +-- [[Main/GrantBow]] - 15 Nov 2002 + +There's little traffic here and little content. Perhaps we should just remove this web? It seemed like a good idea to create it when we split the others off... + +-- [[Main/GrantBow]] - 22 Dec 2002 + +Maybe, but not yet. Let's keep it for a while longer - say, three months. 1st April 2003. If the traffic still is low then we move the Mig topics to the Mach web ... + +...Mig = **Mach** Interface Generator. + +-- [[Main/JoachimNilsson]] - 22 Dec 2002 diff --git a/microkernel/mach/mig/documentation.mdwn b/microkernel/mach/mig/documentation.mdwn new file mode 100644 index 00000000..222f89d1 --- /dev/null +++ b/microkernel/mach/mig/documentation.mdwn @@ -0,0 +1,27 @@ +[[toc ]] + +# About + +This is a small collection of links to external documents describing the Mach Interface Generator used by GNU Mach. + +# MIG and C Thread Programming + +A tutorial which demonstrates the use of the C Threads library primitives in writing a multithreaded program and the use of the Mach Interface Generator (MIG) to generate remote procedure calls for interprocess communication. Like its companion tutorial, it is based on the Mach 2.5 system. However, the concepts are applicable to Mach 3.0 user level programming. + +Linda R. Walmer and Mary R. Thompson. **A Programmer's Guide to the Mach User Environment**. [PostScript ](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.ps)[Doc](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/machuse.doc) February 1988. School of Computer Science, Carnegie Mellon University. + +An ftp directory containing the [mig programming examples](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig_example) for this tutorial. + +Slides to Rich Drave's talk on Mig, the Mach Interface Generator, on November 21, 1991: [PostScript](ftp://ftp.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/root.ps) [TeX](ftp://ftp.cs.cmu.edu//afs/cs/project/mach/public/doc/unpublished/internals_slides/Mig/slides.tex) + +# Roots + +Mig is an implementation of a subset of the Matchmaker **language**. + +"Matchmaker is a language for specifying and automating the generation of multilingual interprocess communication interfaces. MIG is an interim implementation of a subset of the Matchmaker language that generates C and C++ remote procedure call interfaces for interprocess communication between Mach tasks." + +Richard P. Draves,Michael B. Jones,Mary R. Thompson, **MIG - THE MACH INTERFACE GENERATOR**. [ps](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.ps) [doc](ftp://ftp.cs.cmu.edu/afs/cs/project/mach/public/doc/unpublished/mig.doc) November 1989. Department of Computer Science, Carnegie-Mellon University. + +# Related Work + +See the citations about [Mach and matchmaker: kernel and language support for objectoriented distributed systems](http://citeseer.ist.psu.edu/context/93073/0) here. "M. B. Jones and R. F. Rashid, \`Mach and matchmaker: kernel and language support for objectoriented distributed systems', Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications, October 1986, pp. 67--77." |