--- /dev/null
+diff --git a/Makefile b/Makefile
+index 50e420c..c0e877b 100644
+--- a/Makefile
++++ b/Makefile
+@@ -62,29 +62,32 @@ endif
+ else
+ INSTALLPATH=$(INSTALLPATH_MSYS_MINGW)
+ endif
+-else
++else
+ INSTALLPATH=$(INSTALLPATH_LINUX)
+ endif
+ endif
+
+ # use 386 instructions but optimize for pentium II/III
+-CFLAGS = -g -D$(TYPESIZE) -O3 -I. -O1 -idirafter$(BOOST_INCLUDE) -Wall -Wno-uninitialized $(CFLAGAPP)
++CFLAGS += -D$(TYPESIZE) -I. -idirafter$(BOOST_INCLUDE) -Wall -Wno-uninitialized
++CXXFLAGS += -D$(TYPESIZE) -I. -idirafter$(BOOST_INCLUDE) -Wall -Wno-uninitialized
+
+ ifeq ($(DEBUG),1)
+ CFLAGS += -DDEBUG
++CXXFLAGS += -DDEBUG
+ endif
+
+ ifeq ($(MACHINE),mingw32)
+ CFLAGS += -DMINGW
++CXXFLAGS += -DMINGW
+ endif
+
+ ifeq ($(ISCYGWIN),1)
+ ifeq ($(NOCYGWIN),1)
+ CFLAGS += -DMINGW -mno-cygwin
++CXXFLAGS += -DMINGW -mno-cygwin
+ endif
+ endif
+
+-CXXFLAGS = $(CFLAGS)
+
+
+ # Somewhat automatic detection of the correct boost include folder
+@@ -171,7 +174,7 @@ endif
+ PAL_FILES = pals/$(subst &,.bcp pals/,$(PALORDER)).bcp
+
+ # deafult targets
+-all: $(GRFCODEC) $(GRFDIFF) $(GRFMERGE)
++all: version.h $(GRFCODEC) $(GRFDIFF) $(GRFMERGE)
+ remake: clean all
+
+ ${MAKEFILELOCAL}:
+@@ -181,15 +184,15 @@ ${MAKEFILELOCAL}:
+
+ $(GRFCODEC): $(GRFCODECSRC:%.c=%.o)
+ $(_E) [LD] $@
+- $(_C)$(CXX) -o $@ $(CFLAGS) $^ $(LDOPT)
++ $(_C)$(CXX) -o $@ $(CXXFLAGS) $^ $(LDOPT)
+
+ $(GRFDIFF): $(GRFDIFFSRC:%.c=%.o) grfmrg.o
+ $(_E) [LD] $@
+- $(_C)$(CXX) -o $@ $(CFLAGS) $^ $(LDOPT)
++ $(_C)$(CXX) -o $@ $(CXXFLAGS) $^ $(LDOPT)
+
+ $(GRFMERGE): $(GRFMERGESRC:%.c=%.o)
+ $(_E) [LD] $@
+- $(_C)$(CXX) -o $@ $(CFLAGS) $^ $(LDOPT)
++ $(_C)$(CXX) -o $@ $(CXXFLAGS) $^ $(LDOPT)
+
+
+ clean:
+@@ -219,9 +222,7 @@ FORCE:
+ $(_E) [REBUILD] $(@:%_r=%)
+ $(_C)rm -f $(@:%_r=%)
+ $(_C)$(MAKE) ${_S} $(@:%_r=%)
+- $(_E) [STRIP/UPX] $(@:%_r=%)
+ $(_C)$(STRIP) $(@:%_r=%)
+- $(_C)upx $(_Q) --best $(@:%_r=%)
+
+ release: $(GRFCODEC)_r $(GRFDIFF)_r $(GRFMERGE)_r
+
+@@ -230,9 +231,7 @@ grfmrgc.bin: grfmerge.os $(GRFMERGESRC:%.c=%.os)
+ $(_C)rm -f $@
+ $(_E) [LD] $@
+ $(_C)$(CC) -o $@ $(CFLAGS) -Os $^
+- $(_E) [STRIP/UPX] $@
+ $(_C)$(STRIP) $@
+- $(_C)upx $(_Q) --best $@
+
+ grfmrg.c: grfmrgc.bin grfmrgc.pl
+ $(_E) [PERL] $@
+@@ -291,15 +290,18 @@ ttdpal.h: $(PAL_FILES) pal2c.pl
+
+ %.o.d:
+ $(_E) [CPP DEP] $@
+- $(_C)$(CC) $(CFLAGS) -DMAKEDEP -MM -MG $*.c* -MF $@
++ $(_C)$(CC) $(CFLAGS) -DMAKEDEP -MM -MG error.c getopt.c grfcomm.c grfmerge.c path.c -MF $@
++ $(_C)$(CXX) $(CXXFLAGS) -DMAKEDEP -MM -MG file.cc grfcodec.cc grfdiff.cc info.cc pcxfile.cc pcxsprit.cc readinfo.cc sprites.cc -MF $@
+
+ %.os.d:
+ $(_E) [CPP DEP] $@
+- $(_C)$(CC) $(CFLAGS) -DMAKEDEP -MM -MG -MT ${subst .d,,$@} -MF $@ $*.c*
++ $(_C)$(CC) $(CFLAGS) -DMAKEDEP -MM -MG -MT ${subst .d,,$@} -MF $@ error.c getopt.c grfcomm.c grfmerge.c path.c
++ $(_C)$(CXX) $(CXXFLAGS) -DMAKEDEP -MM -MG -MT ${subst .d,,$@} -MF $@ file.cc grfcodec.cc grfdiff.cc info.cc pcxfile.cc pcxsprit.cc readinfo.cc sprites.cc
+
+-%.obj.d: $(wildcard %.c*)
++%.obj.d:
+ $(_E) [CPP DEP] $@
+- $(_C)$(CC) $(CFLAGS) -DMAKEDEP -MM -MG -MT ${subst .d,,$@} -MF $@ $*.c*
++ $(_C)$(CC) $(CFLAGS) -DMAKEDEP -MM -MG -MT ${subst .d,,$@} -MF $@ error.c getopt.c grfcomm.c grfmerge.c path.c
++ $(_C)$(CXX) $(CXXFLAGS) -DMAKEDEP -MM -MG -MT ${subst .d,,$@} -MF $@ file.cc grfcodec.cc grfdiff.cc info.cc pcxfile.cc pcxsprit.cc readinfo.cc sprites.cc
+
+ ifndef NO_MAKEFILE_DEP
+ -include $(GRFCODECSRC:%.c=%.o.d)
+diff --git a/Makefile.common b/Makefile.common
+index c559c0a..fe99591 100644
+--- a/Makefile.common
++++ b/Makefile.common
+@@ -5,9 +5,7 @@ FORCE:
+ $(_E) [REBUILD] $(@:%_r=%)
+ $(_C)rm -f $(@:%_r=%)$(EXE)
+ $(_C)make -f $(MAKEFILE) $(_S) $(@:%_r=%)
+- $(_E) [STRIP/UPX] $(@:%_r=%)
+ $(_C)strip $(@:%_r=%)$(REL_EXE)
+- $(_C)upx $(_Q) --best $(@:%_r=%)$(REL_EXE)
+
+ release: grfcodec_r grfdiff_r grfmerge_r
+
+@@ -16,9 +14,7 @@ grfmrgc.bin: grfmerge.os $(GRFMERGESRC:%.c=%.os)
+ $(_C)rm -f $@
+ $(_E) [LD] $@
+ $(_C)$(CC) -o $@ $(CFLAGS) -Os $^
+- $(_E) [STRIP/UPX] $@
+ $(_C)strip $@
+- $(_C)upx $(_Q) --best $@
+
+ grfmrg.c: grfmrgc.bin grfmrgc.pl
+ $(_E) [PERL] $@
+@@ -32,7 +28,7 @@ ttdpal.h: $(PAL_FILES) pal2c.pl
+
+ readinfo.o: readinfo.cc
+ $(_E) [CPP] $@
+- $(BOOST_WARN)
++ $(BOOST_WARN)
+ $(_C)$(CXX) -c -o $@ -MMD -MG -MF $@.d $(CXXFLAGS) $<
+
+ %.o : %.c