There's a sample makefile.gcc for pngcrush, which you can use by typing make -f makefile.gcc However, all you should need to do is enter the pngcrush-1.3.0 directory and type cc -O -o pngcrush *.c -lm cp pngcrush /usr/local/bin # or wherever you want You might want to create a makefile if you are planning to do something more complicated, like loading with your system's shared libraries for libpng and zlib. Here's a command for compiling on SGI IRIX: cc -n32 -fullwarn -O2 -IPA:plimit=256 -OPT:Olimit=0 -o pngcrush *.c -lm cp pngcrush /usr/local/bin On a PC with DJGCC, you can type gcc -O3 -Wall -funroll-loops -o pngcrush *.c copy /B pmodstub.exe + pngcrush pngcrush.exe then put pngcrush.exe wherever you want.