Cygwin – Compile source naar binary (makefile)

makefile icon

Cygwin logo

Heel veel programma’s voor Linux zijn geschreven in C++ en worden zogenaamde “source tarballs” genoemd, dit betekend dat de c++ bestanden in een .TAR.GZ /.TAR.BZ2 bestand (archief) te downloaden zijn.

Om de source (broncode) om te zetten naar een bruikbaar (binary) bestand moet je eerst deze source compileren, dus deze door een c++ compiler halen om er een .EXE bestand of dergelijke van de maken, hoe je dat doet in cygwin (niet een standaard linux omgeving) laat ik hier zien, ik gebruik dan even het voorbeeld van Binwalk v0.5.0

Ik heb het hier in meerdere (onlogisch lijkende) stappen uitgelegd, maar dit heb ik gedaan zodat je kan zien wat er nodig is (dependacies) en hoe je cygwin moet gebruiken!

De basis procedure:

1) Download “binwalk v0.5.0” hier, let op: geen 1.0.0+, die is in pyton geschreven!

2) Plaats het binwalk-0.5.0.tar.gz bestand in je “cygwin home” folder [CygwinFolder]\home\[GEBRUIKER], controleer het eventueel met het ls (list) commando of het inderdaad goed is gegaan:

3) Eerst moeten we de inhoud van binwalk-0.5.0.tar.gz uitpakken, dit doe je met het volgende commando:

tar xvzf binwalk-0.5.0.tar.gz

cygwin source uitpakken

4) Ga naar de folder met de broncode (source), nu is het tijd om het pakket te configureren, dit wordt gedaan door het configure script. Met configureren compile je nog niets!, je omgeving en de variablen worden gecontroleerd, en er word een bestand Makefile aangemaakt, deze heb je nodig om de daadwerkelijke binary te maken.

Ps. Zolang er geen FOUTMELDINGEN (errors) getoont worden met het configuratiescript is er niets aan de hand!

(kan natuurlijk ook in 1 keer met cd binwalk-0.5.0/src/)

cygwin naar folder

5) Als je nu in de src folder zit, tik dan het volgende in om het configuratie script te draaien:  ./configure

cygwin error 01

We missen de C Compiler en GCC (GNU Compiler Collection, website)

Cygwin C Compiler & GCC installeren

6) Open setup.exe (cygwin webinstaller)
7) Klik door totdat je bij de installatielijst komt, zoek op “GCC”, wat je nodig hebt zit onder DEVEL (Developement), klik op “default” naast het icoontje bij DEVEL zodat deze naar “install” springt, ga door met de installatie.

cygwin install gcc

8) Er komt nu een pop-up in beeld dat meld dat we meer paketten nodig hebben om de door ons geselecteerde pakketten goed te laten werken (dependancies), klik op volgende.

cygwin install gcc dep

9) De geselecteerde bestanden worden nu gedownload en geïnstalleerd.

10) Ga terug naar cygwin (of start opnieuw op) en tik wederom in:  ./configure

cygwin error 02

Het configure script komt nu een stuk verder echter zie je wederom een foutmelding: de libcurl bibliotheek is niet aanwezig!

Cygwin “libcurl” library installeren

11) Open setup.exe (cygwin webinstaller)
12) Klik door totdat je bij de installatielijst komt, zoek op “libcurl”, selecteer hier alle paketten in alle categorien, klik naast het icoontje zodat deze naar “install” springt, ga door met de installatie.

cygwin install libcurl

13) Er komt nu een pop-up in beeld dat meld dat we meer paketten nodig hebben om de door ons geselecteerde pakketten goed te laten werken (dependancies), klik op volgende.

cygwin install libcurl dep

14) De geselecteerde bestanden worden nu gedownload en geinstalleerd.

15) Ga terug naar cygwin (of start opnieuw op) en tik wederom in: ./configure

cygwin config ok

Je ziet nu dat alles goed is gegaan zonder foutmeldingen, onderaan staat dat het bestand “makefile” is aangemaakt! je kan nu door met het compileren van binwalk v0.5.0

16) Tik het volgende commando in: make

17) het volgende probleem doet zich voor:

cygwin error 03

Het commando “make” wordt niet herkent, dit moeten we ook installeren!

Cygwin “make” library installeren

18) Open setup.exe (cygwin webinstaller)
19) Klik door totdat je bij de installatielijst komt, zoek op “make”, selecteer make onder “DEVEL”, ga door met de installatie.

cygwin install make

20) De geselecteerde bestanden worden nu gedownload en geïnstalleerd.

21) Ga terug naar cygwin (of start opnieuw op) en tik wederom in: make

cygwin make

Nu zie je dat dit ook goed gaat!

22) Nu gaan we binwalk 0.5.0 installeren, tik het volgende commando in: make install

cygwin make install

Nu kun je binwalk starten vanaf de commandolijn: binwalk

cygwin binwalk ok

Gecompileerde binary in Windows uitvoeren

Er is een bestand binwalk.exe in [CygwinFolder]\home\[GEBRUIKER]\binwalk-0.5.0\src\binwalk.exe aangemaakt, dit bestand kun je starten in windows, echter heeft het wel een aantal DLL bestanden nodig, om deze goed in windows uit te voeren is kun je dit bestand het beste naar [CygwinFolder]\bin\ of [CygwinFolder]\lib\ verplaatsen, dan kun je het in windows zonder problemen uitvoeren:

cygwin binwalk windows

Bronnen:
tuxfiles.org