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-n.n.n directory and type cc -O -o pngcrush *.c -lm cp pngcrush /usr/local/bin # or wherever you want You might want to create your own 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. On OS/2 with emx: gcc -Zomf -O2 -Wall -c *.c gcc -Zomf -Zcrtdll -s -o pngcrush.exe *.obj then put pngcrush.exe wherever you want.