#
# Makefile for lkcd_ksyms
#
# Copyright 1999 Silicon Graphics, Inc. All rights reserved.
# COPYRIGHT(C) FUJITSU LIMITED 2001
#
-include ../.config
DEPTH  = .
include $(DEPTH)/commondefs

TARGET    = lkcd_ksyms
CFILES    = main.c
LIBS      = -llkcd_alloc -lklib -llkcd_util -lbfd -liberty -lsial -lz
EXTRA_LFLAGS = -static -L../lcrash -L$(LKCDDIR)/libklib \
	    -L$(GDB_DIR)/bfd -L$(GDB_DIR)/libiberty -L$(GDB_DIR)/opcodes \
            -L$(LKCDDIR)/liballoc -L$(LKCDDIR)/libsial -L$(LKCDDIR)/libutil
OFILES    = $(CFILES:.c=.o)
SUB_DIRS  = man

ifeq ($(TARGET_ARCH),all)
EXTRA_CFLAGS += -DDUMP_ARCH_I386 -DDUMP_ARCH_IA64 -DDUMP_ARCH_S390 \
                -DDUMP_ARCH_S390X
else
ifeq ($(TARGET_ARCH),everything)
EXTRA_CFLAGS += -DDUMP_ARCH_ALPHA -DDUMP_ARCH_I386 -DDUMP_ARCH_IA64 \
                -DDUMP_ARCH_S390 -DDUMP_ARCH_S390X
else
ifeq ($(TARGET_ARCH),alpha)
DUMP_ARCH = $(DUMP_ALPHA)
EXTRA_CFLAGS += -DDUMP_ARCH_ALPHA
else
ifeq ($(TARGET_ARCH),i386)
DUMP_ARCH = $(DUMP_I386)
EXTRA_CFLAGS += -DDUMP_ARCH_I386
else
ifeq ($(TARGET_ARCH),ia64)
DUMP_ARCH = $(DUMP_IA64)
EXTRA_CFLAGS += -DDUMP_ARCH_IA64
else
ifeq ($(TARGET_ARCH),s390)
DUMP_ARCH = $(DUMP_S390)
EXTRA_CFLAGS += -DDUMP_ARCH_S390
else
ifeq ($(TARGET_ARCH),s390x)
DUMP_ARCH = $(DUMP_S390X)
EXTRA_CFLAGS += -DDUMP_ARCH_S390X
endif
endif
endif
endif
endif
endif
endif

# check that libklib supports host arch as dump arch
EXTRA_CFLAGS += -DSUPPORT_HOST_ARCH

all: default

default: $(TARGET)

$(TARGET): subdirs_make
	$(CC) -o $@ $(LDFLAGS) $(LFLAGS) $(EXTRA_LFLAGS) $(OFILES) $(LIBS)

subdirs_make: $(OFILES)
	for dir in $(SUB_DIRS) ; do \
		( cd $$dir && $(MAKE) ) || exit $$ ? ; \
	done

clean:
	/bin/rm -f *.o
	for dir in $(SUB_DIRS) ; do \
		( cd $$dir && \
		$(MAKE) ARCH=$(ARCH) clean ) || exit $$? ; \
	done

clobber: clean
	/bin/rm -f $(TARGET)

$(OFILES): $(HEADERS)

#
# We avoid this for now -- you'll need to do a make clobber followed
# by a make if you want to fix this later.
#
$(HEADERS): symlinks

symlinks:
	/bin/rm -f $(HPATH)/arch
	(cd $(LKCDDIR)/libklib && $(MAKE) ARCH=$(ARCH) symlinks)

headers exports:

install: $(TARGET)
	mkdir -p $(ROOT)/sbin
	mkdir -p $(ROOT)$(mandir)/man1
	install -m 755 lkcd_ksyms $(ROOT)/sbin/lkcd_ksyms
	install -m 644 man/lkcd_ksyms.1 $(ROOT)$(mandir)/man1
