# * $(MODULE)/*.cc -- module source files
MODULES := main reader store alien typeregister textmodel fold typepath
-CFLAGS = -I.
-CC = g++
+CXXFLAGS = -I.
+CXX = g++
# Variables for the modules to write to
SRCS :=
# This rule just links the object files together
odcread: $(SRCS:.cc=.o)
- $(CC) -o $@ $^
+ $(CXX) -liconv -o $@ $^
# This rule build an object (.o) from a source (.cc).
%.o: %.cc
- $(CC) $(CFLAGS) $< -c -o $@
+ $(CXX) $(CXXFLAGS) $< -c -o $@
# For each implementation header (.ih) generate a dependency (.d) file which
# will ensure that the compiled header (.ih.gch) is rebuilt whenever the header
# The .d file is not an explicit target because it will need to be (re-)built
# if and only if the .ih.gch needs to be rebuilt.
%.ih.gch: %.ih
- $(CC) $(CFLAGS) -x c++-header $< -MM -MF $*.d -MP -MT $@
- $(CC) $(CFLAGS) -x c++-header $< -o $@
+ $(CXX) $(CXXFLAGS) -x c++-header $< -MM -MF $*.d -MP -MT $@
+ $(CXX) $(CXXFLAGS) -x c++-header $< -o $@
# Each module has a .ih file that should be *the only* include from the .cc
# files. These .ih files are pre-compiled to .ih.gch, and dependency caching
namespace odc {
void Reader::readAlien(Alien *alien, std::streampos down, std::streampos end) {
- std::streampos next = down != 0 ? down : end;
+ std::streampos next = down;
+ if (next == (std::streampos)0) {
+ next = end;
+ }
while (d_rider.tellg() < end) {
if (d_rider.tellg() < next) { // for some reason, this means its a piece (unstructured)
size_t len = next - d_rider.tellg();