#
# Makefile for lcrash command library
#
# Copyright (C) 1999 - 2005 Silicon Graphics, Inc. All rights reserved.
#
# This file is part of lcrash, an analysis tool for Linux memory dumps.
#
# Created by Silicon Graphics, Inc.
# Contributions by IBM, and others
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version. See the file COPYING for more
# information.
#
DEPTH  = ..

-include ../../.config
include $(DEPTH)/commondefs

EXTRA_CFLAGS += -DARCH=$(ARCH) -I../include 

TARGETS = $(DEPTH)/libcmds.a

# common code for lcrash commands
CMD_COMMON = command.c cmds.c cmd_base.c cmd_deftask.c \
                cmd_dis.c cmd_dump.c cmd_findsym.c cmd_help.c cmd_mmap.c \
                cmd_page.c cmd_print.c cmd_quit.c cmd_stat.c\
                cmd_task.c cmd_vtop.c cmd_history.c \
                cmd_savedump.c cmd_sizeof.c cmd_whatis.c \
                cmd_ldcmds.c cmd_namelist.c cmd_walk.c cmd_module.c \
                cmd_symtab.c cmd_version.c cmd_trace.c cmd_strace.c \
                cmd_report.c cmd_info.c cmd_set.c cmd_pci.c cmd_search.c

# dump architecture specific code for lcrash commands
CMD_DUMP_ALPHA = cmds_alpha.c
CMD_DUMP_ARM   = cmds_arm.c cmd_mktrace_arm.c cmd_rd_arm.c cmd_defcpu_arm.c
CMD_DUMP_I386  = cmds_i386.c cmd_mktrace_i386.c cmd_rd_i386.c cmd_defcpu_i386.c
CMD_DUMP_IA64  = cmds_ia64.c cmds_sn2.c cmd_rd_ia64.c cmd_defcpu_ia64.c cmd_unwind.c \
		 cmd_hwpath.c cmd_vertex.c cmd_config.c cmd_cpu.c
CMD_DUMP_PPC64 = cmds_ppc64.c cmd_rd_ppc64.c cmd_defcpu_ppc64.c
CMD_DUMP_S390  = 
CMD_DUMP_S390X = 
CMD_DUMP_S390_COMMON = cmd_dbf_s390.c cmds_s390.c
CMD_DUMP_X86_64  = cmds_x86_64.c cmd_rd_x86_64.c cmd_defcpu_x86_64.c

ifeq ($(TARGET_ARCH_ALPHA),y)
CMD_DUMP_ARCH += $(CMD_DUMP_ALPHA)
EXTRA_CFLAGS += -DDUMP_ARCH_ALPHA
endif
ifeq ($(TARGET_ARCH_ARM),y)
CMD_DUMP_ARCH += $(CMD_DUMP_ARM)
EXTRA_CFLAGS += -DDUMP_ARCH_ARM
endif
ifeq ($(TARGET_ARCH_I386),y)
CMD_DUMP_ARCH += $(CMD_DUMP_I386)
EXTRA_CFLAGS += -DDUMP_ARCH_I386
endif
ifeq ($(TARGET_ARCH_IA64),y)
CMD_DUMP_ARCH += $(CMD_DUMP_IA64)
EXTRA_CFLAGS += -DDUMP_ARCH_IA64
endif
ifeq ($(TARGET_ARCH_PPC64),y)
CMD_DUMP_ARCH += $(CMD_DUMP_PPC64)
EXTRA_CFLAGS += -DDUMP_ARCH_PPC64
endif
# CMD_DUMP_S390_COMMON should be added only once
ifeq ($(TARGET_ARCH_S390),y)
CMD_DUMP_ARCH += $(CMD_DUMP_S390) $(CMD_DUMP_S390_COMMON)
EXTRA_CFLAGS += -DDUMP_ARCH_S390
else
ifeq ($(TARGET_ARCH_S390X),y)
CMD_DUMP_ARCH += $(CMD_DUMP_S390_COMMON)
endif
endif
ifeq ($(TARGET_ARCH_S390X),y)
CMD_DUMP_ARCH += $(CMD_DUMP_S390X)
EXTRA_CFLAGS += -DDUMP_ARCH_S390X
endif
ifeq ($(TARGET_ARCH_XSCALE),y)
CMD_DUMP_ARCH += $(CMD_DUMP_ARM)
EXTRA_CFLAGS += -DDUMP_ARCH_ARM -DCONFIG_CPU_XSCALE
endif
ifeq ($(TARGET_ARCH_X86_64),y)
CMD_DUMP_ARCH += $(CMD_DUMP_X86_64)
EXTRA_CFLAGS += -DDUMP_ARCH_X86_64
endif

CFILES    = $(CMD_COMMON) $(CMD_DUMP_ARCH)

OFILES    = $(CFILES:.c=.o)

all: default

clean:
	rm -f *.o

clobber: clean
	rm -f $(TARGETS)

export install:

$(OFILES): $(HEADERS)

default: $(TARGETS)

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

