blob: 63333fdc058612fbf0a189e18295c017c7a521a1 [file] [log] [blame] [edit]
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -19,11 +19,11 @@ TINYXML_USE_STL := NO
#****************************************************************************
-CC := gcc
-CXX := g++
-LD := g++
-AR := ar rc
-RANLIB := ranlib
+CC ?= gcc
+CXX ?= g++
+CCLD ?= ${CXX}
+AR ?= ar
+RANLIB ?= ranlib
DEBUG_CFLAGS := -Wall -Wno-format -g -DDEBUG
RELEASE_CFLAGS := -Wall -Wno-unknown-pragmas -Wno-format -O3
@@ -35,15 +35,16 @@ RELEASE_CXXFLAGS := ${RELEASE_CFLAGS}
DEBUG_LDFLAGS := -g
RELEASE_LDFLAGS :=
+ARFLAGS ?= rc
ifeq (YES, ${DEBUG})
- CFLAGS := ${DEBUG_CFLAGS}
- CXXFLAGS := ${DEBUG_CXXFLAGS}
- LDFLAGS := ${DEBUG_LDFLAGS}
+ CFLAGS := ${CFLAGS} ${DEBUG_CFLAGS}
+ CXXFLAGS := ${CXXFLAGS} ${DEBUG_CXXFLAGS}
+ LDFLAGS := ${LDFLAGS} ${DEBUG_LDFLAGS}
else
- CFLAGS := ${RELEASE_CFLAGS}
- CXXFLAGS := ${RELEASE_CXXFLAGS}
- LDFLAGS := ${RELEASE_LDFLAGS}
+ CFLAGS := ${CFLAGS} ${RELEASE_CFLAGS}
+ CXXFLAGS := ${CXXFLAGS} ${RELEASE_CXXFLAGS}
+ LDFLAGS := ${LDFLAGS} ${RELEASE_LDFLAGS}
endif
ifeq (YES, ${PROFILE})
@@ -82,6 +83,7 @@ CXXFLAGS := ${CXXFLAGS} ${DEFS}
#****************************************************************************
OUTPUT := xmltest
+LIBRARY := libtinyxml.a
all: ${OUTPUT}
@@ -90,11 +92,12 @@ all: ${OUTPUT}
# Source files
#****************************************************************************
-SRCS := tinyxml.cpp tinyxmlparser.cpp xmltest.cpp tinyxmlerror.cpp tinystr.cpp
+LIB_SRCS := tinyxml.cpp tinyxmlparser.cpp tinyxmlerror.cpp tinystr.cpp
# Add on the sources for libraries
-SRCS := ${SRCS}
+SRCS := ${LIB_SRCS} xmltest.cpp
+LIB_OBJS := $(addsuffix .o,$(basename ${LIB_SRCS}))
OBJS := $(addsuffix .o,$(basename ${SRCS}))
#****************************************************************************
@@ -102,7 +105,10 @@ OBJS := $(addsuffix .o,$(basename ${SRCS}))
#****************************************************************************
${OUTPUT}: ${OBJS}
- ${LD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}
+ ${CCLD} -o $@ ${LDFLAGS} ${OBJS} ${LIBS} ${EXTRA_LIBS}
+
+${LIBRARY}: ${LIB_OBJS}
+ ${AR} ${ARFLAGS} $@ $^
#****************************************************************************
# common rules
@@ -119,7 +125,7 @@ dist:
bash makedistlinux
clean:
- -rm -f core ${OBJS} ${OUTPUT}
+ -rm -f core ${OBJS} ${OUTPUT} ${LIBRARY}
depend:
#makedepend ${INCS} ${SRCS}