# $Id: Makefile24,v 1.2 2003/05/14 21:51:57 mikpe Exp $
# Performance-monitoring counters driver Makefile for 2.4/2.2 kernels.

# construct various object file lists:
# kernel-objs-y		kernel objects exporting symbols
# y-objs-y		kernel objects not exporting symbols
# m-objs-m		perfctr.o if driver is module, empty otherwise
# driver-objs-y		objects for perfctr.o module, or empty

driver-objs-$(CONFIG_X86) := x86.o
tests-objs-$(CONFIG_X86) := x86_tests.o
kernel-objs-$(CONFIG_X86) := x86_setup.o

# Braindamage alert! x86_64 defines _both_ CONFIG_X86_64 and CONFIG_X86.
# These assignments need to override those above.
driver-objs-$(CONFIG_X86_64) := x86_64.o
tests-objs-$(CONFIG_X86_64) := x86_64_tests.o
kernel-objs-$(CONFIG_X86_64) := x86_64_setup.o

driver-objs-y += init.o
driver-objs-$(CONFIG_PERFCTR_INIT_TESTS) += $(tests-objs-y)
driver-objs-$(CONFIG_PERFCTR_VIRTUAL) += virtual.o
stub-objs-$(CONFIG_PERFCTR)-$(CONFIG_PERFCTR_VIRTUAL) := virtual_stub.o
driver-objs-$(CONFIG_PERFCTR_GLOBAL) += global.o
m-objs-$(CONFIG_PERFCTR) := perfctr.o
y-objs-$(CONFIG_PERFCTR) := $(driver-objs-y)
kernel-objs-y += $(stub-objs-m-y)

perfctr-objs		:= $(driver-objs-y)
obj-m			+= $(m-objs-m)

export-objs		:= $(kernel-objs-y)
O_TARGET		:= kperfctr.o
obj-y			:= $(kernel-objs-y) $(y-objs-y)
list-multi		:= perfctr.o

ifeq ($(VERSION)$(PATCHLEVEL),22)
multi-y		:= $(filter $(list-multi), $(obj-y))
multi-m		:= $(filter $(list-multi), $(obj-m))
int-y		:= $(sort $(foreach m, $(multi-y), $($(basename $(m))-objs)))
int-m		:= $(sort $(foreach m, $(multi-m), $($(basename $(m))-objs)))
obj-m		:= $(filter-out $(obj-y), $(obj-m))
int-m		:= $(filter-out $(int-y), $(int-m))
O_OBJS		:= $(sort $(filter-out $(export-objs), $(obj-y)))
OX_OBJS		:= $(sort $(filter     $(export-objs), $(obj-y)))
M_OBJS		:= $(sort $(filter-out $(export-objs), $(obj-m)))
MX_OBJS		:= $(sort $(filter     $(export-objs), $(obj-m)))
MI_OBJS		:= $(sort $(filter-out $(export-objs), $(int-m)))
MIX_OBJS	:= $(sort $(filter     $(export-objs), $(int-m)))
endif

include $(TOPDIR)/Rules.make

perfctr.o:	$(perfctr-objs)
	$(LD) -r -o $@ $(perfctr-objs)
