1#**************************************************************************** 2# 3# Makefile for TinyXml test. 4# Lee Thomason 5# www.grinninglizard.com 6# 7# This is a GNU make (gmake) makefile 8#**************************************************************************** 9 10# DEBUG can be set to YES to include debugging info, or NO otherwise 11DEBUG := NO 12 13# PROFILE can be set to YES to include profiling info, or NO otherwise 14PROFILE := NO 15 16# TINYXML_USE_STL can be used to turn on STL support. NO, then STL 17# will not be used. YES will include the STL files. 18TINYXML_USE_STL := NO 19 20#**************************************************************************** 21 22CC := gcc 23CXX := g++ 24LD := g++ 25AR := ar rc 26RANLIB := ranlib 27 28DEBUG_CFLAGS := -Wall -Wno-format -g -DDEBUG 29RELEASE_CFLAGS := -Wall -Wno-unknown-pragmas -Wno-format -O3 30 31LIBS := 32 33DEBUG_CXXFLAGS := ${DEBUG_CFLAGS} 34RELEASE_CXXFLAGS := ${RELEASE_CFLAGS} 35 36DEBUG_LDFLAGS := -g 37RELEASE_LDFLAGS := 38 39ifeq (YES, ${DEBUG}) 40 CFLAGS := ${DEBUG_CFLAGS} 41 CXXFLAGS := ${DEBUG_CXXFLAGS} 42 LDFLAGS := ${DEBUG_LDFLAGS} 43else 44 CFLAGS := ${RELEASE_CFLAGS} 45 CXXFLAGS := ${RELEASE_CXXFLAGS} 46 LDFLAGS := ${RELEASE_LDFLAGS} 47endif 48 49ifeq (YES, ${PROFILE}) 50 CFLAGS := ${CFLAGS} -pg -O3 51 CXXFLAGS := ${CXXFLAGS} -pg -O3 52 LDFLAGS := ${LDFLAGS} -pg 53endif 54 55#**************************************************************************** 56# Preprocessor directives 57#**************************************************************************** 58 59ifeq (YES, ${TINYXML_USE_STL}) 60 DEFS := -DTIXML_USE_STL 61else 62 DEFS := 63endif 64 65#**************************************************************************** 66# Include paths 67#**************************************************************************** 68 69#INCS := -I/usr/include/g++-2 -I/usr/local/include 70INCS := 71 72 73#**************************************************************************** 74# Makefile code common to all platforms 75#**************************************************************************** 76 77CFLAGS := ${CFLAGS} ${DEFS} 78CXXFLAGS := ${CXXFLAGS} ${DEFS} 79 80#**************************************************************************** 81# Targets of the build 82#**************************************************************************** 83 84OUTPUT := xmltest 85 86all: ${OUTPUT} 87 88 89#**************************************************************************** 90# Source files 91#**************************************************************************** 92 93SRCS := tinyxml.cpp tinyxmlparser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp 94 95# Add on the sources for libraries 96SRCS := ${SRCS} 97 98OBJS := $(addsuffix .o,$(basename ${SRCS})) 99 100#**************************************************************************** 101# Output 102#**************************************************************************** 103 104${OUTPUT}: ${OBJS} 105 ${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS} 106 107#**************************************************************************** 108# common rules 109#**************************************************************************** 110 111# Rules for compiling source files to object files 112%.o : %.cpp 113 ${CXX} -c ${CXXFLAGS} ${INCS} $< -o $@ 114 115%.o : %.c 116 ${CC} -c ${CFLAGS} ${INCS} $< -o $@ 117 118dist: 119 bash makedistlinux 120 121clean: 122 -rm -f core ${OBJS} ${OUTPUT} 123 124depend: 125 #makedepend ${INCS} ${SRCS} 126 127tinyxml.o: tinyxml.h tinystr.h 128tinyxmlparser.o: tinyxml.h tinystr.h 129xmltest.o: tinyxml.h tinystr.h 130tinyxmlerror.o: tinyxml.h tinystr.h 131