47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
xvfs_random$(LIB_SUFFIX): $(shell find example -type f) $(shell find lib -type f) lib/xvfs/xvfs.c.rvt xvfs-create-random Makefile
./xvfs-create-random | $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -DXVFS_MODE_FLEXIBLE -x c - -shared -o xvfs_random$(LIB_SUFFIX) $(LIBS)
xvfs_synthetic$(LIB_SUFFIX): $(shell find lib -type f) lib/xvfs/xvfs.c.rvt xvfs-create-synthetic Makefile
./xvfs-create-synthetic | $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -DXVFS_MODE_FLEXIBLE -x c - -shared -o xvfs_synthetic$(LIB_SUFFIX) $(LIBS)
benchmark:
$(MAKE) clean all XVFS_ADD_CPPFLAGS="-UXVFS_DEBUG" XVFS_ADD_CFLAGS="-g0 -ggdb0 -s -O3"
./benchmark.tcl
test: example-standalone$(LIB_SUFFIX) xvfs$(LIB_SUFFIX) example-client$(LIB_SUFFIX) example-flexible$(LIB_SUFFIX) Makefile
rm -f __test__.tcl
echo 'if {[catch { eval $$::env(XVFS_TEST_LOAD_COMMANDS); source $(XVFS_ROOT_MOUNTPOINT)example/main.tcl }]} { puts stderr $$::errorInfo; exit 1 }; exit 0' > __test__.tcl
@export XVFS_ROOT_MOUNTPOINT; export XVFS_TEST_LOAD_COMMANDS; for XVFS_TEST_LOAD_COMMANDS in \
'load ./example-standalone$(LIB_SUFFIX) Xvfs_example' \
'load -global ./xvfs$(LIB_SUFFIX); load ./example-client$(LIB_SUFFIX) Xvfs_example' \
'load ./xvfs$(LIB_SUFFIX); load ./example-flexible$(LIB_SUFFIX) Xvfs_example' \
'load ./example-flexible$(LIB_SUFFIX) Xvfs_example'; do \
echo "[$${XVFS_TEST_LOAD_COMMANDS}] $(GDB) $(TCLSH) __test__.tcl $(TCL_TEST_ARGS)"; \
$(GDB) $(TCLSH) __test__.tcl $(TCL_TEST_ARGS) || exit 1; \
done
rm -f __test__.tcl
coverage:
$(MAKE) clean
$(MAKE) XVFS_ADD_CFLAGS=-coverage XVFS_ADD_LDFLAGS=-coverage
$(MAKE) test XVFS_TEST_EXIT_ON_FAILURE=0
rm -f xvfs-test-coverage.info
lcov --capture --directory . --output-file xvfs-test-coverage.info
rm -rf xvfs-test-coverage
mkdir xvfs-test-coverage
genhtml xvfs-test-coverage.info --output-directory xvfs-test-coverage
rm -f xvfs-test-coverage.info
clean:
rm -f xvfs-create-standalone.new xvfs-create-standalone
rm -f example.c example.c.new
rm -f example-standalone$(LIB_SUFFIX) example-standalone.o
rm -f example-client.o example-client$(LIB_SUFFIX)
rm -f example-flexible.o example-flexible$(LIB_SUFFIX)
rm -f xvfs.o xvfs$(LIB_SUFFIX)
rm -f example-standalone.gcda example-standalone.gcno
rm -f example-client.gcda example-client.gcno
rm -f example-flexible.gcda example-flexible.gcno
rm -f xvfs_random$(LIB_SUFFIX) xvfs_synthetic$(LIB_SUFFIX)
rm -f xvfs.gcda xvfs.gcno
rm -f __test__.tcl
rm -f xvfs-test-coverage.info
rm -rf xvfs-test-coverage
distclean: clean
.PHONY: all clean distclean test coverage benchmark
|
|
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
|
|
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
xvfs_random$(LIB_SUFFIX): $(shell find example -type f) $(shell find lib -type f) lib/xvfs/xvfs.c.rvt xvfs-create-random Makefile
./xvfs-create-random | $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -DXVFS_MODE_FLEXIBLE -x c - -shared -o xvfs_random$(LIB_SUFFIX) $(LIBS)
xvfs_synthetic$(LIB_SUFFIX): $(shell find lib -type f) lib/xvfs/xvfs.c.rvt xvfs-create-synthetic Makefile
./xvfs-create-synthetic | $(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -DXVFS_MODE_FLEXIBLE -x c - -shared -o xvfs_synthetic$(LIB_SUFFIX) $(LIBS)
do-benchmark:
$(MAKE) clean all XVFS_ADD_CPPFLAGS="-UXVFS_DEBUG" XVFS_ADD_CFLAGS="-g0 -ggdb0 -s -O3"
./benchmark.tcl
test: example-standalone$(LIB_SUFFIX) xvfs$(LIB_SUFFIX) example-client$(LIB_SUFFIX) example-flexible$(LIB_SUFFIX) Makefile
rm -f __test__.tcl
echo 'if {[catch { eval $$::env(XVFS_TEST_LOAD_COMMANDS); source $(XVFS_ROOT_MOUNTPOINT)example/main.tcl }]} { puts stderr $$::errorInfo; exit 1 }; exit 0' > __test__.tcl
@export XVFS_ROOT_MOUNTPOINT; export XVFS_TEST_LOAD_COMMANDS; for XVFS_TEST_LOAD_COMMANDS in \
'load ./example-standalone$(LIB_SUFFIX) Xvfs_example' \
'load -global ./xvfs$(LIB_SUFFIX); load ./example-client$(LIB_SUFFIX) Xvfs_example' \
'load ./xvfs$(LIB_SUFFIX); load ./example-flexible$(LIB_SUFFIX) Xvfs_example' \
'load ./example-flexible$(LIB_SUFFIX) Xvfs_example'; do \
echo "[$${XVFS_TEST_LOAD_COMMANDS}] $(GDB) $(TCLSH) __test__.tcl $(TCL_TEST_ARGS)"; \
$(GDB) $(TCLSH) __test__.tcl $(TCL_TEST_ARGS) || exit 1; \
done
rm -f __test__.tcl
do-test: test
do-coverage:
$(MAKE) clean
$(MAKE) XVFS_ADD_CFLAGS=-coverage XVFS_ADD_LDFLAGS=-coverage
$(MAKE) test XVFS_TEST_EXIT_ON_FAILURE=0
rm -f xvfs-test-coverage.info
lcov --capture --directory . --output-file xvfs-test-coverage.info
rm -rf xvfs-test-coverage
mkdir xvfs-test-coverage
genhtml xvfs-test-coverage.info --output-directory xvfs-test-coverage
rm -f xvfs-test-coverage.info
profile: profile.c Makefile
rm -f example-client$(LIB_SUFFIX) xvfs$(LIB_SUFFIX)
$(MAKE) xvfs$(LIB_SUFFIX) example-client$(LIB_SUFFIX) XVFS_ADD_CPPFLAGS="-UXVFS_DEBUG"
$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) -UUSE_TCL_STUBS ./xvfs$(LIB_SUFFIX) ./example-client$(LIB_SUFFIX) -o profile profile.c -ltcl
do-profile: profile Makefile
rm -rf oprofile_data
LD_LIBRARY_PATH='$(shell pwd):$(LD_LIBRARY_PATH)' operf ./profile
opreport
clean:
rm -f xvfs-create-standalone.new xvfs-create-standalone
rm -f example.c example.c.new
rm -f example-standalone$(LIB_SUFFIX) example-standalone.o
rm -f example-client.o example-client$(LIB_SUFFIX)
rm -f example-flexible.o example-flexible$(LIB_SUFFIX)
rm -f xvfs.o xvfs$(LIB_SUFFIX)
rm -f example-standalone.gcda example-standalone.gcno
rm -f example-client.gcda example-client.gcno
rm -f example-flexible.gcda example-flexible.gcno
rm -f xvfs_random$(LIB_SUFFIX) xvfs_synthetic$(LIB_SUFFIX)
rm -f xvfs.gcda xvfs.gcno
rm -f __test__.tcl
rm -f profile
rm -rf oprofile_data
rm -f xvfs-test-coverage.info
rm -rf xvfs-test-coverage
distclean: clean
.PHONY: all clean distclean test do-test do-coverage do-benchmark do-profile
|