From: Patrik Gornicz Date: Sun, 31 May 2009 02:50:54 +0000 (-0400) Subject: added printTrace test X-Git-Tag: libbear-premerge~78 X-Git-Url: http://gitweb.pgornicz.com/?a=commitdiff_plain;h=6104117e0e03b5f7785f79ed07a28d15f975a960;p=libbear.git added printTrace test --- diff --git a/test/Makefile b/test/Makefile new file mode 100644 index 0000000..d75efc9 --- /dev/null +++ b/test/Makefile @@ -0,0 +1,154 @@ + +LIBDIR := ../../ +SRCSDIR := src/ +DEPSDIR := deps/ +INCDIRS := ${SRCSDIR} ${LIBDIR}inc/ + +OBJSDIR := objsd/ + +WORKINGDIR := bind/ + + +LIBGL := -lGL -lGLU +LIBSDL := `sdl-config --libs` +LIBS := ${LIBSDL} ${LIBGL} + +SRCLIBSDIR := libs/ +DSTLIBSDIR := ${WORKINGDIR} + +LIBSCPY := # := start +LIBSCPY += libbear.so.0 +LIBSCPY := $(addprefix ${DSTLIBSDIR},${LIBSCPY}) + +TARGETNAME := test +TARGETTMP := ${OBJSDIR}${TARGETNAME} +TARGET := ${WORKINGDIR}${TARGETNAME} + +RPATH := ./ + +OPTFLAGS := -O2 +DBGFLAGS := -ggdb +PRFFLAGS := ${DBGFLAGS} -pg +MYFLAGS := -Wall -pedantic -ansi +INCFLAGS := $(addprefix -I, ${INCDIRS}) +LNKFLAGS := -Wl,-rpath,${RPATH} +CXXFLAGS := ${MYFLAGS} ${DBGFLAGS} + +CXX := g++ + + +PRNTFMT := printf "%-8s: %s\n" + +VERBOSE := 0 + +ifeq (${VERBOSE},0) + # quiet the printf command + Q1 := @ + # quiet the command that is `replaced' by an echo + Q2 := @ +else + # EAT the printf command as if it was not there + Q1 := @true # NOTE: the space between @true and the # is VERY important!! + # do not quiet the command output + Q2 := +endif + + +# cause the fancy $${@D} directory rules to work out +.SECONDEXPANSION: + +# The first and therefor default rule +.PHONY: all +all: ${TARGET} ${LIBSCPY} + + +# lists populated by dir.mk files in subdirectories +SRCS := # := start +DIRS := # := start +OBJS := # := start +DEPS := # := start + +DIRMK := dir.mk + +# include all of the dir.mk files in src +include ${SRCSDIR}${DIRMK} + + +DEPSBLDDIRS := ${DEPSDIR} $(addprefix ${DEPSDIR},${DIRS}) +OBJSBLDDIRS := ${OBJSDIR} $(addprefix ${OBJSDIR},${DIRS}) + +BLDDIRS := # := start +BLDDIRS += ${OBJSBLDDIRS} +BLDDIRS += ${DEPSBLDDIRS} +BLDDIRS += ${DSTLIBSDIR} +BLDDIRS += ${WORKINGDIR} +BLDDIRS := $(sort ${BLDDIRS}) # remove possible duplicates + + +# how to link the main target +${TARGETTMP}: ${OBJS} ${LIBSCPY} | $${@D} + ${Q1}${PRNTFMT} "${CXX}" "$@" + ${Q2}${CXX} ${CXXFLAGS} ${LNKFLAGS} -o $@ $^ ${LIBS} + +# rule to copy tmp target to working directory +${TARGET}: ${TARGETTMP} | $${@D} + ${Q1}${PRNTFMT} "cp" "$@" + ${Q2}cp $< $@ + +# rule to copy the library files into the working directory +${DSTLIBSDIR}%: ${SRCLIBSDIR}% | $$(dir $$@) + ${Q1}${PRNTFMT} "cp" "$@" + ${Q2}cp $< $@ + +# how to make a directory +${BLDDIRS}: + ${Q1}${PRNTFMT} "mkdir" "$@" + ${Q2}mkdir -p $@ + +# rule to make an object file from a .cpp +${OBJSDIR}%.o: ${SRCSDIR}%.cpp | $${@D} + ${Q1}${PRNTFMT} "${CXX}" "$@" + ${Q2}${CXX} ${CXXFLAGS} -c -o $@ $< ${INCFLAGS} + +# rule to make a depend file from a .cpp +# be clever and escape the / chars in file paths +# DON'T simply use another sed delimiter or it can't appear in the file paths +${DEPSDIR}%.d: ${SRCSDIR}%.cpp | $${@D} + ${Q1}${PRNTFMT} "DEP" "$@" + ${Q2}${CXX} -MM ${CXXFLAGS} $< ${INCFLAGS} | \ + sed 's/\(^.*\):/$(subst /,\/,${OBJSDIR}\1 $@):/' > $@ + +CLEANCMDS := cleanbin cleanobjs cleandeps clean cleanall + +.PHONY: cleanbin +cleanbin: + ${Q1}${PRNTFMT} "rm" "${WORKINGDIR}" + ${Q2}rm -rf ${WORKINGDIR} + +.PHONY: cleanobjs +cleanobjs: + ${Q1}${PRNTFMT} "rm" "${OBJSDIR}" + ${Q2}rm -rf ${OBJSDIR} + +.PHONY: cleandeps +cleandeps: + ${Q1}${PRNTFMT} "rm" "${DEPSDIR}" + ${Q2}rm -rf ${DEPSDIR} + +.PHONY: clean +clean: cleanobjs + ${Q1}${PRNTFMT} "rm" "${TARGET}" + ${Q2}rm -f ${TARGET} + +.PHONY: cleanall +cleanall: cleanbin cleanobjs cleandeps + +.PHONY: run +run: all + cd ${WORKINGDIR}; ./${TARGETNAME} + +# Do not include deps files when doing a _single_ clean operation +ifeq ($(findstring ${MAKECMDGOALS},${CLEANCMDS}),) + -include ${DEPS} +endif + diff --git a/test/printTrace/Makefile b/test/printTrace/Makefile new file mode 120000 index 0000000..d0b0e8e --- /dev/null +++ b/test/printTrace/Makefile @@ -0,0 +1 @@ +../Makefile \ No newline at end of file diff --git a/test/printTrace/libs/libbear.so.0 b/test/printTrace/libs/libbear.so.0 new file mode 120000 index 0000000..842f36a --- /dev/null +++ b/test/printTrace/libs/libbear.so.0 @@ -0,0 +1 @@ +../../../bind/libbear.so.0.0 \ No newline at end of file diff --git a/test/printTrace/src/dir.mk b/test/printTrace/src/dir.mk new file mode 100644 index 0000000..9a72bae --- /dev/null +++ b/test/printTrace/src/dir.mk @@ -0,0 +1,24 @@ + +NEWSRCS := # := start; empty +NEWSRCS += main.cpp + +NEWDIRS := # := start; empty + +# Post dir setup + +CURDIR := + +NEWSRCS := $(addprefix ${CURDIR},${NEWSRCS}) +NEWDIRS := $(addprefix ${CURDIR},${NEWDIRS}) +NEWOBJS := ${NEWSRCS:.cpp=.o} +NEWDEPS := ${NEWSRCS:.cpp=.d} + +# Append to lists + +SRCS += ${NEWSRCS} +DIRS += ${CURDIR} +OBJS += $(addprefix ${OBJSDIR},${NEWOBJS}) +DEPS += $(addprefix ${DEPSDIR},${NEWDEPS}) + + +include $(addprefix ${SRCSDIR},$(addsuffix ${DIRMK},${NEWDIRS})) diff --git a/test/printTrace/src/main.cpp b/test/printTrace/src/main.cpp new file mode 100644 index 0000000..41c12ac --- /dev/null +++ b/test/printTrace/src/main.cpp @@ -0,0 +1,18 @@ + +#include "debug.h" + +void test() +{ + bear::debug::printTrace(); +} + +int main() +{ + bear::debug::init(); + + test(); + + bear::debug::fini(); + + return 0; +}