aboutsummaryrefslogtreecommitdiff
path: root/libraries/libprof/Makefile
diff options
context:
space:
mode:
authorPaul Selkirk <paul@psgd.org>2017-05-10 00:00:04 -0400
committerPaul Selkirk <paul@psgd.org>2017-09-07 18:11:01 -0400
commit03d7fa26a89d44349df86e29ac782d075856c570 (patch)
treed2b70efd350b17e67896118e60aca392560fdec4 /libraries/libprof/Makefile
parentb2858c0eabeb2aba36ad7b5a964d52e51711c8df (diff)
Sigh, right offset for the wrong register. Get the PC (the address we
interrupted) rather than LR (the return address from the function we interrupted). Also, change u_short and u_int to unsigned short and unsigned int, since gcc recently decided that those aren't part of the C99 standard. Finally, add profilable versions of memcpy, memset, and friends, because they get called a lot in the course of unit testing, and it would be nice to know who's calling them.
Diffstat (limited to 'libraries/libprof/Makefile')
-rw-r--r--libraries/libprof/Makefile20
1 files changed, 20 insertions, 0 deletions
diff --git a/libraries/libprof/Makefile b/libraries/libprof/Makefile
new file mode 100644
index 0000000..4fe5fb4
--- /dev/null
+++ b/libraries/libprof/Makefile
@@ -0,0 +1,20 @@
+LIB = libprof.a
+
+OBJS = gmon.o profil.o profiler.o
+
+# Don't profile the profiling code, because that way lies madness (and recursion).
+CFLAGS := $(subst -pg,,$(CFLAGS))
+
+all: $(LIB)
+
+%.o : %.c
+ $(CC) $(CFLAGS) -c -o $@ $<
+
+%.o : %.S
+ $(CC) $(CFLAGS) -c -o $@ $<
+
+$(LIB): $(OBJS)
+ $(AR) -r $@ $^
+
+clean:
+ rm -f $(OBJS) $(LIB)