CC = g++ #__CYGWIN__ = 1 INSTALLDIR = $(HOME)/bin ifdef DEBUG DEBUG_FLAGS = -g else CODE_FLAGS = -fno-exceptions -fno-rtti -fcheck-new \ -Wall -ansi -pedantic -Wno-sign-compare -Wno-unknown-pragmas -Wno-conversion OPT_FLAGS = -O4 -march=pentiumpro endif ifdef PROF CPPFLAGS += -pg CFLAGS += -pg LDFLAGS += -pg else ifdef DEBUG else CODE_FLAGS += -fomit-frame-pointer endif endif CPPFLAGS += $(CODE_FLAGS) $(DEBUG_FLAGS) $(OPT_FLAGS) -Wall -ansi CFLAGS += $(CPPFLAGS) LDFLAGS += -lexpat ifdef __CYGWIN__ LDFLAGS += -liconv CPPFLAGS += -D__CYGWIN__ SUF = .exe endif MODULES = Args Coder EncodeSax IFile Model PrintSax StringArray XmlModel SRCS = $(addsuffix .cpp,$(MODULES)) OBJS = $(addsuffix .o,$(MODULES)) BINARIES = xmlppm$(SUF) xmlunppm$(SUF) all: $(BINARIES) xmlppm$(SUF): xmlppm.o $(OBJS) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) xmlunppm$(SUF): xmlunppm.o $(OBJS) $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS) clean: rm -f $(BINARIES) *.exe *.sax *.new *.ppm *.xppm* *.o *.stackdump core *~ distclean: clean rm -rf Debug Release install: all cp $(BINARIES) $(INSTALLDIR)