summaryrefslogtreecommitdiff
path: root/segregated-dynamic-link-diagram.tex
blob: 5ba516b12198cb9c628c9559ae74b02721aae34a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
\input{dynamic-link-diagram-styles.tex}
\begin{tikzpicture}[node distance=1cm]
  \node (executable) [program] { Executable };
  \node (exec-libaa) [libaa] at (executable.south) { ⚙ };
  \node (exec-libba) [libba,text=black] at (exec-libaa.south) { ⚙ };
  \node (exec-libbb) [libbb] at (exec-libba.south) { ⚙ };
  \node (executable-s0) [below=of exec-libba] {};
  \node (libaa) [libaa, left=of  executable-s0] { libAA.so };
  \node (libaa-libbb) [incompatible] at (libaa.south) { 🛠 };
  \node (libbb-incompat) [incompatible, below=of libaa-libbb,
                          rectangle split, rectangle split parts=2] 
  {
    libBB.so 
    \nodepart{two}\emph{(Incompatible)}
  };
  \node (libba) [libba, right=of executable-s0] { libBA.so };
  \node (libba-libbb) [libbb] at (libba.south) { ⚙ };
  \node (libbb) [libbb, below=of libba-libbb  ] { libBB.so };
  \draw [needed] (exec-libaa.west)   -| (libaa.north);
  \draw [needed] (exec-libba.east)   -| (libba.north);
  \draw [needed] (exec-libbb.south)  |- (libbb.west);
  \draw [needed] (libba-libbb.south) -- (libbb.north);
  \draw [needed] (libaa-libbb.south) -- (libbb-incompat.north);
\end{tikzpicture}