| # Builds certain tests for Linux | 
 | # | 
 | # Customize your settings in your Makelocal | 
 | # - LINUX_KDIR: linux source for the module (/path/to/linux/source) | 
 | # | 
 | # You should be able to build the Linux programs without building Akaros by | 
 | # running make in this directory.  Set LINUX_KDIR in your environment.  Fun! | 
 |  | 
 | # Default compiler/tools come from the top-level Makefile.  They can be | 
 | # overridden.  Also these are used if we were called directly instead of from | 
 | # the top-level makefile. | 
 | HOSTCC ?= gcc | 
 | HOSTCFLAGS ?= -Wall -Wno-char-subscripts -Wmissing-prototypes \ | 
 |               -Wstrict-prototypes -O2 -fomit-frame-pointer | 
 | HOSTLD ?= ld | 
 |  | 
 |  | 
 | USERDIR = ../../user | 
 | # override to our local obj/ | 
 | OBJDIR = obj | 
 |  | 
 | ifeq ($(TESTS_DIR),) | 
 | # independent build, from this directory | 
 | Q = @ | 
 | endif | 
 | # override, regardless | 
 | TESTS_DIR = .. | 
 |  | 
 | # defined below | 
 | all: | 
 |  | 
 | ifeq ($(LINUX_KDIR),) | 
 |  | 
 | mods: | 
 | 	$(Q)echo LINUX_KDIR is unset.  Set it, Makelocal or env, for Linux mods | 
 |  | 
 | mods_clean: | 
 | 	@: | 
 |  | 
 | else | 
 |  | 
 | mods: | 
 | 	@cd modules && $(MAKE) -C $(LINUX_KDIR) CC=$(HOSTCC) LD=$(HOSTLD) M=$$PWD modules | 
 |  | 
 | mods_clean: | 
 | 	@cd modules && $(MAKE) -C $(LINUX_KDIR) M=$$PWD clean | 
 |  | 
 | endif | 
 |  | 
 | clean: mods_clean | 
 | 	@rm -rf $(OBJDIR) .*cmd | 
 |  | 
 | # Programs in this directory (if any) | 
 | tests_srcs_c := $(wildcard *.c) | 
 | tests_lddepends_c := %.c | 
 | tests_execs_c   = $(patsubst %.c, $(OBJDIR)/%, $(tests_srcs_c)) | 
 |  | 
 | # Select programs from tests/ | 
 | # All programs we build end up in obj/tests/linux/, even the ones from tests/ | 
 | sel_progs = lock_test.c interference.c pthread_test.c | 
 |  | 
 | sel_progs_srcs_c = $(patsubst %c,$(TESTS_DIR)/%c, $(sel_progs)) | 
 | sel_progs_lddepends_c := $(TESTS_DIR)/%.c | 
 | sel_progs_execs_c = $(patsubst %.c, $(OBJDIR)/%, $(sel_progs)) | 
 |  | 
 | progs = $(tests_execs_c) $(sel_progs_execs_c) | 
 |  | 
 | tests_c_deps := $(USERDIR)/benchutil/measure.c | 
 | tests_ldlibs := -lpthread -lm | 
 |  | 
 | $(OBJDIR)/%: $(tests_lddepends_c) | 
 | 	@echo + cc [LINUX_TESTS] $< | 
 | 	@mkdir -p $(@D) | 
 | 	$(Q)$(HOSTCC) -static -O2 $< $(tests_c_deps) -o $@ $(tests_ldlibs) | 
 |  | 
 | $(OBJDIR)/%: $(sel_progs_lddepends_c) | 
 | 	@echo + cc [LINUX_TESTS] $< | 
 | 	@mkdir -p $(@D) | 
 | 	$(Q)$(HOSTCC) -static -O2 $< $(tests_c_deps) -o $@ $(tests_ldlibs) | 
 |  | 
 | all: mods $(progs) | 
 | 	@: | 
 |  | 
 | .PHONY: $(all mods clean) |