
\section{Projekte erzeugen ({\tt m2project})}

Das Programm "`{\bf m2project}"' erm"oglicht das Anlegen von
{\bf Projekten} --- beschrieben im Abschnitt  \ref{project} ---
samt ihren gew"unschten Unterverzeichnissen.
Es k"onnen selbst bereits vorhandene Projekte mit neuen
Unterverzeichnissen oder Ikonen versehen werden.

\subsection{Aufruf und Bedienung}

\begin{quote}\tt
m2project \{+-bimorst ?\} \{ {\cmsltt ProjectName\/}\}
\end{quote}

Mit {\tt m2project \cmsltt ProjectName} wird das Projekt
{\cmsltt ProjectName\/} kreiert. In diesem Projekt werden
auch die Verzeichnisse "`{\tt bin}"', "`{\tt obj}"', "`{\tt ref}"',
"`{\tt sym}"' und "`{\tt txt}"' erzeugt. Die Unterverzeichnisse
beinhalten folgende Dateien:

\begin{ttscript}{sym}
\item[bin]
  Die gelinkten, ausf"uhrbaren Programme. Diese haben im Normalfall
  {\em keine} Endung.
\item[obj]
  Die Objektdateien aller in diesem Projekt vorhandenen Quelldateien.
  Jene haben die Endungen "`{\tt obj}"', "`{\tt ob1}"', "`{\tt ob2}"',
  "`{\tt ob3}"', "`{\tt ob4}"', "`{\tt ob8}"'. Unabh"angig von
  der Prozessorversion werden alle Objektdateien also in {\em einem\/}
  Unterverzeichnis des Projekts abgelegt.
\item[ref]
  Die Referenzdateien, welche die Informationen f"ur Debugger,
  Profiler und "ahnliche Programme beinhalten. Die entsprechende
  Endung ist "`{\tt .ref}"'.
\item[sym]
  Die Symboldateien, d.h.\ die compilierten Versionen der
  Definitionsmoduln. Der Compiler vergibt hierf"ur die
  Endung "`{\tt .sym}"'.
\item[txt]
  Die Quelldateien, d.h.\ in erster Linie
  Definitions-, Implementations- und
  Programm-Moduln. Erstere sollten die Endung "`{\tt .def}"'
  haben, die anderen die Endung "`{\tt .mod}"'. Ausserdem
  werden Dateien mit der Endung "`{\tt .asm}"' als Assembler-Quelldateien
  interpretiert.
\end{ttscript}

\subsection{Optionen}

Die einzelnen Optionen k"onnen mit "`{\tt -}"' gel"oscht und
mit "`{\tt +}"' gesetzt werden. Haupts"achlich k"onnen Sie
die Erzeugung der einzelnen Unterverzeichnisse beeinflussen.
Ohne besondere Optionen werden {\em alle\/} beschriebenen
Unterverzeichnisse erzeugt.

\begin{ttscript}{xxx}
\item[?]
  zeigt die Version und die Syntax von {\tt m2project} an.
\item[b]
  Mit der Option "`{\tt -b}"' wird {\em kein\/} Unterverzeichnis
  {\tt bin} erzeugt. Vorgabe ist, alle Verzeichnisse zu erzeugen.
\item[i]
  F"ur das Projektverzeichnis und alle zu erzeugenden Unterverzeichnisse
  werden mit "`{\tt +i}"' Ikonen erzeugt. Ohne Angabe werden nur dann
  Ikonen erzeugt, wenn {\tt m2project} von der Workbench aufgerufen
  wurde.
\item[m]
  (move) Legen Sie in einem bereits angelegten Projekt {\em neue\/}
  Unterverzeichnisse an, werden alle bestehenden Dateien, die
  direkt im Projektverzeichnis liegen, in die neuen
  Unterverzeichnisse ({\tt bin}, {\tt obj}, \ldots)
  verschoben. Dabei gelten folgende Konventionen, welche
  Dateitypen in welche Unterverzeichnisse verschoben werden.
  \begin{ttscript}{xxxx}
  \item[obj{\rm :}]
    {\tt \#?.ob?(\%|.info)}
  \item[ref{\rm :}]
    {\tt \#?.ref(\%|.info)}
  \item[sym{\rm :}]
    {\tt \#?.sym(\%|.info)}
  \item[txt{\rm :}]
    {\tt \#?.(def|mod|asm)(\%|.info)}
  \item[bin{\rm :}]
    alle, die keinen Punkt enthalten oder nur mit {\tt .info}
    enden, ausser {\tt path(\%|.info)}, {\tt obj}, {\tt ref}, {\tt sym},
    {\tt txt}.
  \end{ttscript}
  Dieses Umkopieren kann mit "`{\tt -m}"' unterbunden werden.
\item[o]
  Die Option "`{\tt -o}"' unterdr"uckt das Erzeugen des
  {\tt obj}-Verzeichnisses, Vorgabe ist "`{\tt +o}"'.
\item[r]
  Steuert die Erzeugung des {\tt ref}-Verzeichnisses.
\item[s]
  Beeinflusst die Erzeugung des {\tt sym}-Verzeichnisses.
\item[t]
  Analog zu den Optionen {\tt b}, {\tt o}, {\tt r} und
  {\tt s} f"ur das {\tt txt}-Verzeichnis zu"-st"an\-dig.
\end{ttscript}

Alle Optionen, insbesondere f"ur die gew"unschten Unterverzeichnisse,
k"onnen in der Umgebungsvariable "`{\tt ENV:M2PROJECT}"'
abgelegt werden. Damit stellen Sie sicher, dass all ihre
Projekte den gleichen Aufbau haben.

\subsection{Fehlermeldungen}

\subsubsection{\tt Fehler beim Er\protect"offnen von \cmsltt Verzeichnis}

Das Verzeichnis konnte nicht ordnungsgem"ass kreiert werden.

\subsubsection{\cmsltt verzeichnis.\/\tt info nicht gefunden}

Die vorgegebenen Ikonen f"ur die neu kreierten Verzeichnisse
konnten nicht gefunden werden. Diese sollten sich normalerweise
im Verzeichnis {\tt M2:icons} befinden.


\subsection{R"uckgabewerte}

\begin{ttscript}{rcImportantNotFound}
\item[rcIllOpt]
  Eine ung"ultige Option oder "`{\tt ?}"' wurden angegeben.
\item[rcActionErr]
  Ein gefordertes Verzeichnis kann nicht kreiert werden
  oder beim Umkopieren von Dateien in die Unterverzeichnisse
  (z.B.\ {\tt \#?.mod $\rightarrow$ txt/}) ist ein Fehler aufgetreten.
\end{ttscript}

Die Verwendung der R"uckgabewerte ist unter \ref{RetVal}
beschrieben.
