Annotation of hatari/tests/debugger/Makefile, revision 1.1.1.1

1.1       root        1: # Makefile for testing Hatari (debugger) features
                      2: #
                      3: # "make":
                      4: # - compile tests
                      5: #
                      6: # "make test":
                      7: # - run tests
                      8: #
                      9: # "make valgrind":
                     10: # - run tests under valgrind
                     11: #
                     12: # "make clean; make MUDFLAP=1 mudflap":
                     13: # - run tests with GCC mudflap checks
                     14: 
                     15: # Set the C compiler (e.g. gcc)
                     16: CC = gcc
                     17: 
                     18: # Directory given for 'cmake' i.e. where CMake created the config.h.
                     19: # Could also be simply "../.." or "../../build".
                     20: CONFIGDIR := $(shell find ../.. -name config.h | head -1 | sed 's%/[^/]*$$%%')
                     21: 
                     22: # SDL-Library configuration (compiler flags and linker options) - you normally
                     23: # don't have to change this if you have correctly installed the SDL library!
                     24: SDL_CFLAGS := $(shell sdl-config --cflags)
                     25: 
                     26: # What warnings to use
                     27: WARNFLAGS = -Wmissing-prototypes -Wstrict-prototypes -Wsign-compare \
                     28:   -Wbad-function-cast -Wcast-qual  -Wpointer-arith -Wwrite-strings -Wall
                     29: 
                     30: # Hatari source include directories:
                     31: INCFLAGS = -I$(CONFIGDIR) -I../../src/includes -I../../src/uae-cpu \
                     32:   -I../../src/debug -I../../src/falcon
                     33: 
                     34: # Set extra flags passed to the compiler
                     35: CFLAGS := -g -O $(INCFLAGS) $(WARNFLAGS) $(SDL_CFLAGS)
                     36: 
                     37: 
                     38: ifneq ($(MUDFLAP),)
                     39: # Run-time checks with GCC "mudflap" etc:
                     40: # - stack protection
                     41: # - checking of pointer accesses (AFAIK works only on x86)
                     42: #
                     43: # Before build, install mudflap library development package,
                     44: # typically it's named either "libmudflap<version>-<gcc-version>-dev"
                     45: # (e.g. libmudflap0-4.4-dev in Debian Squeeze) or "libmudflap-devel"
                     46: # (e.g. in Fedora).
                     47: #
                     48: # To build, use:
                     49: #      make clean; make MUDFLAP=1
                     50: #
                     51: # To run, use something like (disable sound as it can break things):
                     52: #   MUDFLAP_OPTIONS="-viol-gdb" ./hatari --sound off
                     53: #
                     54: # For more info, see (for now, works properly only for x86 gcc):
                     55: #   http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging
                     56: #
                     57: # These tests don't thread, so -fmudflap can be used instead of -fmudflapth
                     58: CFLAGS += -fstack-protector-all -fmudflap
                     59: LDFLAGS = -fmudflap -lmudflap
                     60: endif
                     61: 
                     62: 
                     63: # Valgrind options
                     64: VALGRIND_OPTS = --leak-check=full --leak-resolution=high \
                     65:   --free-fill=0 --error-exitcode=1
                     66: 
                     67: 
                     68: TESTS = test-symbols test-evaluate test-breakcond
                     69: 
                     70: all: $(TESTS)
                     71: 
                     72: 
                     73: # To do mudflap checks, use:
                     74: #      make clean; make MUDFLAP=1 mudflap
                     75: #
                     76: # "-check-initialization" can be used here because these tests don't
                     77: # handle data initialized in external libraries (like Hatari uses
                     78: # SDL surface structs initialized by SDL).
                     79: # 
                     80: # "-print-leaks" can be used because these tests don't utilize external
                     81: # libraries which leave their resources behind on exit (like SDL audio
                     82: # and X locale stuff).
                     83: mudflap: $(TESTS)
                     84:        export MUDFLAP_OPTIONS="-viol-gdb -collect-stats -internal-checking -print-leaks -backtrace=8 -check-initialization -wipe-stack -wipe-heap"; \
                     85:        for test in $^; do ./$$test; echo "Press <Enter>"; read proceed; done
                     86: 
                     87: # Valgrind tests run faster if you compile without Mudflap
                     88: valgrind: $(TESTS)
                     89:        for test in $^; do \
                     90:        valgrind $(VALGRIND_OPTS) ./$$test; \
                     91:        echo "Press <Enter>"; read proceed; \
                     92:        done
                     93: 
                     94: # just run the tests
                     95: test: $(TESTS)
                     96:        for test in $^; do ./$$test; echo "Press <Enter>"; read proceed; done
                     97: 
                     98: # all the real & dummy deps
                     99: SOURCEDEPS = test-dummies.c ../../src/debug/breakcond.c \
                    100:        ../../src/debug/debugcpu.c ../../src/debug/history.c \
                    101:        ../../src/debug/evaluate.c ../../src/debug/symbols.c \
                    102:        ../../src/str.c
                    103: 
                    104: test-symbols: test-symbols.c $(SOURCEDEPS)
                    105:        $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
                    106: 
                    107: test-evaluate: test-evaluate.c $(SOURCEDEPS)
                    108:        $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
                    109: 
                    110: test-breakcond: test-breakcond.c $(SOURCEDEPS)
                    111:        $(CC) $(CFLAGS) -o $@ $^ $(LDFLAGS)
                    112: 
                    113: 
                    114: clean:
                    115:        $(RM) *.o $(TESTS)
                    116: 
                    117: distclean: clean
                    118:        $(RM) *~ *.bak *.orig

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.