#
# $Id: Makefile,v 1.1 2004/12/21 23:26:20 tjm Exp $
# 
# This file is part of libhwconfig.
# A library which provides memory allocation facilities.
#
# Created by Silicon Graphics, Inc.
#
# Copyright (C) 2003-2004 Silicon Graphics, Inc. All rights reserved.
#
# This code is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version. See the file COPYING for more
# information.
#
DEPTH 	     = ..
-include $(DEPTH)/../.config

EXTRA_CFLAGS = $(GFLAGS) -DARCH=$(ARCH) 

# set up include directory search order
EXTRA_CFLAGS += -I$(TOPDIR)/include -I. -I../libklib/include \
	-I../libutil -I../liballoc -I../libconfig


# Turn on strict protype and error checking
EXTRA_CFLAGS += -Wall -Wstrict-prototypes

LIBHWCONFIG = liblkcd_hwconfig.a
TARGETS = $(LIBHWCONFIG) 
COMMON = kl_hwconfig.c kl_pci.c 

# dump architecture specific code
DUMP_ALPHA = 
DUMP_I386  = 
DUMP_IA64  = ia64_cpu.c sn2_hwconfig.c kl_klconfig.c kl_hwgraph.c
DUMP_S390  = 
DUMP_S390X = 
DUMP_ARM   = 
DUMP_PPC64 = 
DUMP_X86_64 = 

ifeq ($(TARGET_ARCH_ALPHA),y)
DUMP_ARCH += $(DUMP_ALPHA)
EXTRA_CFLAGS += -DDUMP_ARCH_ALPHA
endif
ifeq ($(TARGET_ARCH_ARM),y)
DUMP_ARCH += $(DUMP_ARM)
EXTRA_CFLAGS += -DDUMP_ARCH_ARM
endif
ifeq ($(TARGET_ARCH_I386),y)
DUMP_ARCH += $(DUMP_I386)
EXTRA_CFLAGS += -DDUMP_ARCH_I386
endif
ifeq ($(TARGET_ARCH_IA64),y)
DUMP_ARCH += $(DUMP_IA64)
EXTRA_CFLAGS += -DDUMP_ARCH_IA64
endif
ifeq ($(TARGET_ARCH_S390),y)
DUMP_ARCH += $(DUMP_S390)
EXTRA_CFLAGS += -DDUMP_ARCH_S390
endif
ifeq ($(TARGET_ARCH_S390X),y)
DUMP_ARCH += $(DUMP_S390X)
EXTRA_CFLAGS += -DDUMP_ARCH_S390X
endif
ifeq ($(TARGET_ARCH_XSCALE),y)
DUMP_ARCH += $(DUMP_ARM)
EXTRA_CFLAGS += -DDUMP_ARCH_ARM -DCONFIG_CPU_XSCALE
endif
ifeq ($(TARGET_ARCH_PPC64),y)
DUMP_ARCH += $(DUMP_PPC64)
EXTRA_CFLAGS += -DDUMP_ARCH_PPC64
endif
ifeq ($(TARGET_ARCH_X86_64),y)
DUMP_ARCH += $(DUMP_X86_64)
EXTRA_CFLAGS += -DDUMP_ARCH_X86_64
endif

INCDIR  = $(ROOT)/usr/include/lkcd
HFILES  = kl_hwgraph.h kl_pci.h kl_cpu.h kl_libhwconfig.h kl_klconfig.h
CFILES  = $(COMMON) $(DUMP_ARCH)
OFILES  = $(CFILES:.c=.o)

all: default

default: $(TARGETS)

clean:
	/usr/bin/find . -name ".[a-Z]*.flags" -print | xargs /bin/rm -f
	/usr/bin/find . -name ".depend" -print | xargs /bin/rm -f
	/bin/rm -f *.o

mrproper clobber: clean
	/bin/rm -f $(TARGETS)

$(TARGETS): $(OFILES) _FORCE
	$(AR) ccurl $(LIBHWCONFIG) $(OFILES)

headers:
	mkdir -p $(INCDIR)
	install -m 644 $(HFILES) $(INCDIR)

exports install: headers $(TARGETS)
	mkdir -p $(ROOT)/usr/lib/lkcd
	install -m 644 $(TARGETS) $(ROOT)/usr/lib/lkcd

_FORCE:

include $(DEPTH)/../Rules.make
