diff --git a/Makefile.mingw b/Makefile.mingw index c71db47..e1b9c6f 100644 --- a/Makefile.mingw +++ b/Makefile.mingw @@ -1,13 +1,19 @@ +# null, opengl +BUILD=null + +# e.g. null -> -DRW_NULL +BUILDDEF:=$(shell echo $(BUILD) | tr a-z A-Z | sed 's/^/-DRW_/') +BUILDDIR=build-$(BUILD) SRCDIR=src -BUILDDIR=build SRC := $(patsubst %.cpp,$(SRCDIR)/%.cpp, rwbase.cpp clump.cpp\ geometry.cpp plugins.cpp ps2.cpp\ ogl.cpp) OBJ := $(patsubst $(SRCDIR)/%.cpp,$(BUILDDIR)/%.o,$(SRC)) DEP := $(patsubst $(SRCDIR)/%.cpp,$(BUILDDIR)/%.d,$(SRC)) -CFLAGS=-Wall -Wextra -g -DGLEW_STATIC #-Wno-parentheses #-Wconversion +CFLAGS=-Wall -Wextra -g -DGLEW_STATIC $(BUILDDEF) #-Wno-parentheses #-Wconversion +LIB=librw-$(BUILD).a -librw.a: $(OBJ) +$(LIB): $(OBJ) ar scr $@ $(OBJ) $(BUILDDIR)/%.o: $(SRCDIR)/%.cpp @@ -16,4 +22,7 @@ $(BUILDDIR)/%.o: $(SRCDIR)/%.cpp $(BUILDDIR)/%.d: $(SRCDIR)/%.cpp $(CXX) -MM -MT '$(patsubst $(SRCDIR)/%.cpp,$(BUILDDIR)/%.o,$<)' $(CFLAGS) $< > $@ +clean: + rm -f $(BUILDDIR)/*.[od] + -include $(DEP) diff --git a/src/geometry.cpp b/src/geometry.cpp index 765749a..7b920ab 100644 --- a/src/geometry.cpp +++ b/src/geometry.cpp @@ -430,13 +430,14 @@ Texture::streamWrite(ostream &stream) WriteChunkHeader(stream, ID_STRUCT, 4); writeUInt32(this->filterAddressing, stream); - size = strnlen(this->name, 32)+3 & ~3; + // TODO: length can't be > 32 + size = strlen(this->name)+3 & ~3; if(size < 4) size = 4; WriteChunkHeader(stream, ID_STRING, size); stream.write(this->name, size); - size = strnlen(this->mask, 32)+3 & ~3; + size = strlen(this->mask)+3 & ~3; if(size < 4) size = 4; WriteChunkHeader(stream, ID_STRING, size); @@ -453,9 +454,10 @@ Texture::streamGetSize(void) int strsize; size += 12 + 4; size += 12 + 12; - strsize = strnlen(this->name, 32)+3 & ~3; + // TODO: see above + strsize = strlen(this->name)+3 & ~3; size += strsize < 4 ? 4 : strsize; - strsize = strnlen(this->mask, 32)+3 & ~3; + strsize = strlen(this->mask)+3 & ~3; size += strsize < 4 ? 4 : strsize; size += 12 + this->streamGetPluginSize(); return size;