| | CC = gcc |
| | CFLAGS = -O2 -Wall |
| |
|
| | |
| | MAC_BUILD = universal |
| |
|
| | |
| | ifdef ARCH |
| | MAC_BUILD = |
| | else |
| | ARCH = $(shell uname -m) |
| | endif |
| |
|
| | UNAME = $(shell uname -s) |
| |
|
| | ifeq ($(UNAME), Linux) |
| | RANLIB=ranlib |
| | CFLAGS+=-D_GNU_SOURCE -fPIC |
| | endif |
| |
|
| | ifeq ($(UNAME), SunOS) |
| | RANLIB=/bin/true |
| | PATH +=:/usr/perl5/5.10.0/bin:/usr/perl5/5.12/bin |
| | CFLAGS += -fPIC |
| | ifeq ($(ARCH), i86pc) |
| | ARCH = $(shell isainfo -k) |
| | ifeq ($(ARCH), amd64) |
| | ARCH = x86_64 |
| | else |
| | ARCH = i386 |
| | endif |
| | endif |
| | ifeq ($(ARCH), x86_64) |
| | CFLAGS += -m64 |
| | else |
| | CFLAGS += -m32 |
| | endif |
| | endif |
| |
|
| | ifeq ($(UNAME), FreeBSD) |
| | RANLIB=ranlib |
| | CFLAGS += -Wno-error=unknown-pragmas -I/usr/src/sys/cddl/compat/opensolaris -I/usr/src/sys/cddl/contrib/opensolaris/uts/common |
| | CFLAGS += -fPIC |
| | ifeq ($(ARCH), i386) |
| | CFLAGS += -m32 |
| | endif |
| | ifeq ($(ARCH), amd64) |
| | ARCH = x86_64 |
| | endif |
| | endif |
| |
|
| | ifeq ($(UNAME), Darwin) |
| | RANLIB=ranlib |
| | ifeq ($(MAC_BUILD), universal) |
| | CFLAGS += -arch i386 -arch x86_64 |
| | else |
| | CFLAGS += -arch $(ARCH) |
| | endif |
| | endif |
| |
|
| | |
| | objects = usdt.o usdt_dof_file.o usdt_tracepoints.o usdt_probe.o usdt_dof.o usdt_dof_sections.o |
| | headers = usdt.h usdt_internal.h |
| |
|
| | .c.o: $(headers) |
| |
|
| | all: libusdt.a |
| |
|
| | libusdt.a: $(objects) $(headers) |
| | rm -f libusdt.a |
| | $(AR) cru libusdt.a $(objects) |
| | $(RANLIB) libusdt.a |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | ifeq ($(UNAME), Darwin) |
| | ifeq ($(MAC_BUILD), universal) |
| |
|
| | usdt_tracepoints_i386.o: usdt_tracepoints_i386.s |
| | $(CC) -arch i386 -o usdt_tracepoints_i386.o -c usdt_tracepoints_i386.s |
| |
|
| | usdt_tracepoints_x86_64.o: usdt_tracepoints_x86_64.s |
| | $(CC) -arch x86_64 -o usdt_tracepoints_x86_64.o -c usdt_tracepoints_x86_64.s |
| |
|
| | usdt_tracepoints.o: usdt_tracepoints_i386.o usdt_tracepoints_x86_64.o |
| | lipo -create -output usdt_tracepoints.o usdt_tracepoints_i386.o \ |
| | usdt_tracepoints_x86_64.o |
| |
|
| | else |
| | usdt_tracepoints.o: usdt_tracepoints_$(ARCH).s |
| | $(CC) -arch $(ARCH) -o usdt_tracepoints.o -c usdt_tracepoints_$(ARCH).s |
| | endif |
| |
|
| | else |
| |
|
| | ifeq ($(ARCH), x86_64) |
| | usdt_tracepoints.o: usdt_tracepoints_x86_64.s |
| | $(CC) $(CFLAGS) -o usdt_tracepoints.o -c usdt_tracepoints_x86_64.s |
| | endif |
| | ifeq ($(ARCH), i386) |
| | usdt_tracepoints.o: usdt_tracepoints_i386.s |
| | $(CC) $(CFLAGS) -o usdt_tracepoints.o -c usdt_tracepoints_i386.s |
| | endif |
| |
|
| | endif |
| |
|
| | clean: |
| | rm -f *.gch |
| | rm -f *.o |
| | rm -f libusdt.a |
| | rm -f test_usdt |
| | rm -f test_usdt32 |
| | rm -f test_usdt64 |
| | rm -f test_mem_usage |
| |
|
| | .PHONY: clean test |
| |
|
| | |
| |
|
| | test_mem_usage: libusdt.a test_mem_usage.o |
| | $(CC) $(CFLAGS) -o test_mem_usage test_mem_usage.o libusdt.a |
| |
|
| | ifeq ($(UNAME), Darwin) |
| | ifeq ($(MAC_BUILD), universal) |
| | test_usdt64: libusdt.a test_usdt.o |
| | $(CC) -arch x86_64 -o test_usdt64 test_usdt.o libusdt.a |
| | test_usdt32: libusdt.a test_usdt.o |
| | $(CC) -arch i386 -o test_usdt32 test_usdt.o libusdt.a |
| | else |
| | test_usdt: libusdt.a test_usdt.o |
| | $(CC) $(CFLAGS) -o test_usdt test_usdt.o libusdt.a |
| | endif |
| | else |
| | test_usdt: libusdt.a test_usdt.o |
| | $(CC) $(CFLAGS) -o test_usdt test_usdt.o libusdt.a |
| | endif |
| |
|
| | ifeq ($(UNAME), Darwin) |
| | ifeq ($(MAC_BUILD), universal) |
| | test: test_usdt32 test_usdt64 |
| | sudo prove test.pl :: 64 |
| | sudo prove test.pl :: 32 |
| | else |
| | test: test_usdt |
| | sudo prove test.pl |
| | endif |
| | else |
| | test: test_usdt |
| | sudo prove test.pl |
| | endif |
| |
|
| |
|