summaryrefslogtreecommitdiff
path: root/microkernel/mach/mig/gnu_mig
diff options
context:
space:
mode:
authorThomas Schwinge <tschwinge@gnu.org>2008-11-06 08:29:26 +0100
committerThomas Schwinge <tschwinge@gnu.org>2008-11-06 08:59:26 +0100
commit65ad34e710723380896dd7d2d193afc62116ad89 (patch)
treeb39cfbbf213281fbca590874deb7cc0ade51a670 /microkernel/mach/mig/gnu_mig
parent9ef4358330ec422c518a0094bc965f3476466882 (diff)
[[microkernel/mach/mig/gnu_mig]]: New; move most content there.
Diffstat (limited to 'microkernel/mach/mig/gnu_mig')
-rw-r--r--microkernel/mach/mig/gnu_mig/building.mdwn73
-rw-r--r--microkernel/mach/mig/gnu_mig/open_issues.mdwn20
-rw-r--r--microkernel/mach/mig/gnu_mig/open_issues/duplicate_inclusion_guards.mdwn14
3 files changed, 107 insertions, 0 deletions
diff --git a/microkernel/mach/mig/gnu_mig/building.mdwn b/microkernel/mach/mig/gnu_mig/building.mdwn
new file mode 100644
index 00000000..8b553b6b
--- /dev/null
+++ b/microkernel/mach/mig/gnu_mig/building.mdwn
@@ -0,0 +1,73 @@
+# <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'
+RCS](http://savannah.gnu.org/cvs/?group=hurd):
+
+ $ 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 the Debian [[hurd/running/debian/FAQ]] 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/gnu_mach/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/gnu_mig/open_issues.mdwn b/microkernel/mach/mig/gnu_mig/open_issues.mdwn
new file mode 100644
index 00000000..7a6233da
--- /dev/null
+++ b/microkernel/mach/mig/gnu_mig/open_issues.mdwn
@@ -0,0 +1,20 @@
+[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+
+[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU_Free_Documentation_License|/fdl]]."]]"""]]
+
+[[meta title="Open Issues"]]
+
+This is a dumping ground for open issues for GNU MIG.
+
+[[inline
+pages="microkernel/mach/mig/gnu_mig/open_issues/* and !*/discussion"
+show=0
+actions=yes
+rootpage="microkernel/mach/mig/gnu_mig/open_issues"
+postformtext="Add a new item titled:"]]
diff --git a/microkernel/mach/mig/gnu_mig/open_issues/duplicate_inclusion_guards.mdwn b/microkernel/mach/mig/gnu_mig/open_issues/duplicate_inclusion_guards.mdwn
new file mode 100644
index 00000000..93347759
--- /dev/null
+++ b/microkernel/mach/mig/gnu_mig/open_issues/duplicate_inclusion_guards.mdwn
@@ -0,0 +1,14 @@
+[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+
+[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU_Free_Documentation_License|/fdl]]."]]"""]]
+
+E.g., both `/usr/include/hurd/process.h` and
+`/usr/include/hurd/process_request.h` use `_process_user_` as an inclusion
+guard. This leads to problems when both are needed, as is the case in
+[[GDB]]'s `gdb/gnu-nat.c`.