1PKGDIR	?= ../..
2L4DIR	?= $(PKGDIR)/../../..
3
4TARGET                = libl4util.a libl4util.so
5REQUIRES_LIBS         = l4sys
6PC_EXTRA              = Link_Libs= %{static:-ll4util}
7
8ALL_SRC_C_only_x86    = $(addprefix ARCH-x86/, apic.c perform.c spin.c rdtsc.c)
9ALL_SRC_C_only_amd64  = $(ALL_SRC_C_only_x86)
10ALL_SRC_C_only_ppc32  = $(addprefix ARCH-ppc32/, rdtsc.c)
11ALL_SRC_C_only_sparc  = ARCH-sparc/atomics.c
12SRC_C                 = getopt2.c micros2l4to.c rand.c sleep.c \
13                        base64.c kprintf.c kip.c keymap.c \
14                        ARCH-$(ARCH)/backtrace.c thread.c \
15                        $(ALL_SRC_C_only_$(ARCH)) parse_cmdline.c \
16                        list_alloc.c
17SRC_CC                = llulc.cc
18CXXFLAGS              = -DL4_NO_RTTI -fno-exceptions -fno-rtti
19
20PRIVATE_INCDIR_ARCH-x86/perform.c = ARCH-x86
21
22include $(L4DIR)/mk/lib.mk
23
24ARCH-x86/perform.o ARCH-x86/perform.s.o: ARCH-x86/pmc_events.h
25ARCH-x86/pmc_events.h: pmc_events.in
26	@$(GEN_MESSAGE)
27	$(VERBOSE)$(MKDIR) $(dir $@)
28	$(VERBOSE)sort < $^ > $(OBJ_DIR)/$(^F).sorted || rm $(OBJ_DIR)/$(^F).sorted
29	$(VERBOSE)echo "/* created automatically from $^, do not edit */" > $@
30	$(VERBOSE)awk '/^[0-9a-fA-F][0-9a-fA-F].*/{print "{0x"toupper($$1)", \""$$2"\"},"}' < $(OBJ_DIR)/$(^F).sorted >> $@ || rm $@
31	$(VERBOSE)rm $(OBJ_DIR)/$(^F).sorted
32
33vpath pmc_events.in $(SRC_DIR)/ARCH-x86
34