Skip to content

emergenesis/godag

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About:
------------------------------------------------------------
This program will hopefully make it easier to compile
source code written in the go programming language.
A dependency graph is constructed from imports, this
is sorted with a topological sort to figure out a legal
compile order. Testing, formatting and building reverse
dependencies are also automated.


Install:  [Linux/Unix/Mac/Windows]
------------------------------------------------------------

Compile and link the makefile, you may want to substitute
8g and 8l with 6g/5g and 6l/5l pending on your architecture


1) 8g _gdmk.go
2) 8l -o gdmk _gdmk.8   # on Windows gdmk.exe
3) ./gdmk install       # on Windows gdmk.exe


This will compile + link the binary (gd) and move it
to $HOME/bin if it is present, if not it falls back to
$GOBIN, which is required now.


./gdmk -help   to see all available targets/options


Try it Out:
------------------------------------------------------------

You can try to compile the same source using the generated
executable: gd


$ gd src          # will compile source inside src
$ gd -p src       # will print dependency info gathered
$ gd -s src       # will print legal compile order
$ gd src -test    # will run unit-tests
$ gd src -fmt     # will format (gofmt) the source-code
$ gd src -o gd    # will compile and link executable
$ gd -e src       # will goinstall external dependencies


Contributors
------------------------------------------------------------

Hans Stimer
Markus Martin
Robert Hencke
Hunter Freyer


Philosophy (Babble?)
------------------------------------------------------------

Without a tool to figure out which order the source should
be compiled, Makefiles are usually the result. Makefiles
are static in nature, which make them a poor choice to handle
a dynamic problem like a changing source tree. They also make
flat structures quite common, since this usually simplifies
the Makefiles, but makes organisation far less intuitive than
a directory-tree package-structure.


Completion
------------------------------------------------------------

Bash completion scripts for gd and gdmk are placed in util


Logo
------------------------------------------------------------

The logo was made with LaTeX and tikz, it's basically just
an upside down g filled with yellow..

=start LaTeX

\documentclass[12pt]{article}
\usepackage{tikz}
\usepackage{nopageno}


\begin{document}
\begin{tikzpicture}[remember picture,overlay]
  \node [scale=75,fill=black!100,opacity=.8, rounded corners]
   at (current page.center) {}; 
  \node [rotate=180,scale=63,text opacity=0.9,yellow]
   at (current page.center) {g};
\end{tikzpicture}
\end{document}


=end LaTeX



-bjarneh

Releases

No releases published

Packages

No packages published