add prof2 profiler
[goodguy/cinelerra.git] / cinelerra-5.1 / prof2 / Makefile
diff --git a/cinelerra-5.1/prof2/Makefile b/cinelerra-5.1/prof2/Makefile
new file mode 100644 (file)
index 0000000..b7e0247
--- /dev/null
@@ -0,0 +1,47 @@
+TARGETS = libprofile.so prof smap
+BITS=64
+#CFLAGS += -O
+CFLAGS += -g -Wall
+BIN_PATH ?= /usr/bin
+LIB_PATH ?= $(dir $(lastword $(wildcard /lib*/ld-*.so /lib*/*-linux-gnu/ld-*.so)))
+$(if $(LIB_PATH),,$(error cant find ld-.so))
+CFLAGS += -DLIB='"$(LIB_PATH)"'
+ASM_PATH ?= $(dir $(lastword $(wildcard /usr/include/asm/signal.h /usr/include/x86_64-linux-gnu/asm/signal.h)))
+
+.PHONY: all
+all:   $(TARGETS)
+
+.PHONY: install
+install:
+       cp -a libprofile.so $(DESTDIR)$(LIB_PATH)/.
+       cp -a prof smap $(DESTDIR)$(BIN_PATH)/.
+
+.PHONY: uninstall
+uninstall:
+       rm -f $(DESTDIR)$(LIB_PATH)/libprofile.so
+       rm -f $(DESTDIR)$(BIN_PATH)/prof
+       rm -f $(DESTDIR)$(BIN_PATH)/smap
+
+libprofile.so: profile.c
+       $(CC) $(CFLAGS) -fPIC -shared -o $@ $<
+
+prof:  prof.c sys.h
+       $(CC) $(CFLAGS) -o $@ $<
+
+smap:  smap.C
+       $(CXX) $(CFLAGS) -o $@ $< \
+        -Wall -I/usr/include/libiberty -llzma -liberty
+
+tst:   tst.c
+
+sys.h: $(ASM_PATH/signal.h $(ASM_PATH)/unistd.h
+       echo "char *sysreq_name[] = {" > sys.h
+       ./mksyscallent < $(ASM_PATH)/unistd_$(BITS).h >> sys.h
+       echo "};" >> sys.h
+       echo "char *signal_name[] = {" >> sys.h
+       ./mksignalent < $(ASM_PATH)/signal.h >> sys.h
+       echo "};" >> sys.h
+
+.PHONY: clean
+clean:
+       rm -f $(TARGETS) tst sys.h