The project compiles on Linux, Mac OS X and Windows (MinGW/MSYS).

it requires:
- gcc >= 4.8
- libpthread
- libreadline
- libusb
- perl
- an ARM cross-compiler to compile the firmware
- libncurses5-dev

and optionally QT for the GUI


To compile, just run "make".

===========
= Windows =
===========

Rather than download and install every one of these packages, a new ProxSpace 
environment archive file will be made available for download on the project
page at @Gator96100's repo

Afterwards just clone the iceman repo or download someone elses.  Read instructions on @Gator96100 repo page. (https://github.com/Gator96100/ProxSpace/)

Download the ProxSpace environment archive and extract it to C:\

Links
  https://github.com/Gator96100/ProxSpace/archive/master.zip


============
= Mac OS X =
============

Installing from HomeBrew tap
---------------------------
This method is recommended and tested on macOS Sierra 10.12.3

1. Install homebrew if you haven't yet already done so: http://brew.sh/

2. Tap proxmark repo:
    brew tap iceman1001/proxmark3 

3. Install Proxmark3:

Stable release
    brew install proxmark3

Latest non-stable from GitHub (use this if previous command fails)
    brew install --HEAD proxmark3

For more information go to https://github.com/iceman1001/homebrew-proxmark3

Upgrading HomeBrew tap formula
-----------------------------
*This method is useful for those looking to run bleeding-edge versions of iceman's client. Keep this in mind when attempting to update your HomeBrew tap formula as this procedure could easily cause a build to break if an update is unstable on macOS.* 

Tested on macOS Sierra 10.12.6

*Note: This assumes you have already installed iceman's fork from HomeBrew as mentioned above*

1. Force HomeBrew to pull the latest source from github
`brew upgrade --fetch-HEAD iceman1001/proxmark3/proxmark3`
 
2. Flash the bootloader
  * With your Proxmark3 unplugged from your machine, press and hold the button on your Proxmark 3 as you plug it into a USB port. After about 5 seconds let go of the button and run this command
   `$ sudo proxmark3-flasher /dev/tty.usbmodem881 /usr/local/Cellar/proxmark3/HEAD-ccfdd60/share/firmware/fullimage.elf`
  * After the bootloader finishes flashing, unplug your Proxmark3 from your machine
  
3. Flash fullimage.elf
  * Press and hold the button on your Proxmark 3 and keep it held as you plug the Proxmark 3 back into the USB port; continue to hold the button until after this step is complete and the `proxmark3-flasher` command outputs "Have a nice day!"*

`$ sudo proxmark3-flasher /dev/tty.usbmodem881 /usr/local/Cellar/proxmark3/HEAD-ccfdd60/share/firmware/fullimage.elf`

4. Enjoy the update

Compilling from source manually (Legacy)
---------------------------

Tested on OSX 10.10 Yosemite

1 - Install Xcode and Xcode Command Line Tools

2 - Install Homebrew and dependencies
    brew install readline libusb p7zip libusb-compat wget qt5 pkgconfig

3 - Download DevKitARM for OSX
    http://sourceforge.net/projects/devkitpro/files/devkitARM/devkitARM_r44/
    Unpack devkitARM_r44-osx.tar.bz2 to proxmark3 directory.

4 - Edit proxmark3/client/Makefile adding path to readline and qt5

    LDLIBS = -L/usr/local/opt/readline/lib -L/usr/local/opt/qt5/lib -L/opt/local/lib -L/usr/local/lib ../liblua/liblua.a -lreadline -lpthread -lm
    CFLAGS = -std=c99 -I/usr/local/opt/qt5/include -I/usr/local/opt/readline/include -I. -I../include -I../common -I../zlib -I/opt/local/include -I../liblua -Wall $(COMMON_FLAGS) -g -O4

    If your old brew intallation use /usr/local/Cellar/ path replace /usr/local/opt/readline/lib with your actuall readline and qt5 path. See homebrew manuals.

5 - Set Environment

    export DEVKITPRO=$HOME/proxmark3/
    export DEVKITARM=$DEVKITPRO/devkitARM
    export PATH=${PATH}:${DEVKITARM}/bin


============
=   Linux  =
============

1 - Download 

A precompiled DevKitARM cross compiler tool chain package can be found at 
http://sourceforge.net/projects/devkitpro/files/devkitARM
Select the one you need (32bit or 64bit) and unpack to a convinient place, eg 
$HOME/proxmark3/. It will create a devkitARM/ subdirectory.

You will also need a general compiling environment on your computer for
the client and the libusb headers. In most distributions you will get all you 
need with the lsb-package (Linux Standard Base). In debian/ubuntu you simply 
call `aptitude install lsb libusb-dev libreadline-dev libreadline6`. 

For the graphical plot view, you might need the qtlibs (debian/ubuntu: 
libqt4-dev), too.

2 - Set Environment

export DEVKITPRO=$HOME/proxmark3/
export DEVKITARM=$DEVKITPRO/devkitARM
export PATH=${PATH}:${DEVKITARM}/bin