ARCH := $(patsubst i%86,i386,$(shell uname -m))
ARCH := $(patsubst sparc%,sparc,$(ARCH))

CFLAGS= $(RPM_OPT_FLAGS) -Wall -D_GNU_SOURCE
LDFLAGS =

prefix=$(DESTDIR)/usr
sysconfdir=/etc

VERSION=$(shell awk '/Version:/ { print $$2 }' kudzu.spec)
CVSTAG = r$(subst .,-,$(VERSION))

CFLAGS += -DVERSION=\"$(VERSION)\" -I/usr/include/python1.5

ARCH := $(patsubst sparc64,sparc,$(patsubst i%86,i386,$(shell uname -m)))

all: libkudzu.a libkudzu_loader.a kudzumodule.so

AR = ar
RANLIB = ranlib

OBJS = kudzu.o pci.o serial.o ide.o scsi.o parallel.o psaux.o sbus.o keyboard.o
LOADEROBJS = kudzu_loader.o pci.o sbus.o
KUDOBJS = hwconf.o

%.o: %.c %.h
       $(CC) -c $(CFLAGS) -o $@ $<

kudzu_loader.o: kudzu.c
       $(CC) -c $(CFLAGS) -D__LOADER__ -o $@ $<

libkudzu_loader.a: $(LOADEROBJS)
       $(AR) cr libkudzu_loader.a $(LOADEROBJS)
       $(RANLIB) libkudzu_loader.a

libkudzu.a: $(OBJS)
       $(AR) cr libkudzu.a $(OBJS)
       $(RANLIB) libkudzu.a

libmodules.a: modules.o
       $(AR) cr libmodules.a modules.o
       $(RANLIB) libmodules.a

ktest: libkudzu.a ktest.c
       $(CC) $(CFLAGS) $(LDFLAGS) ktest.c -o ktest -L. -lkudzu -lpci

ktest_loader: libkudzu_loader.a ktest_loader.c
       $(CC) $(CFLAGS) $(LDFLAGS) ktest_loader.c -o ktest_loader -L. -lkudzu_loader -lpci

kudzu: libkudzu.a libmodules.a $(KUDOBJS) po
       $(CC) $(CFLAGS) $(LDFLAGS) $(KUDOBJS) -o kudzu -L. -lkudzu -lmodules -lpci -lnewt -lslang -lpopt

kudzumodule.so: kudzumodule.o libkudzu.a
       $(CC) -o $@ $< -shared -Wl,-soname,kudzumodule.so -L. -lkudzu -lpci

po:     dummy
       make -C po

installdata:
       [ -d $(prefix)/share/kudzu ] || install -m 755 -d $(prefix)/share/kudzu
       if [ "$(ARCH)" = "sparc" ] ; then \
          cat pcitable | sed "s|ncr53c8xx|sym53c8xx|g" > $(prefix)/share/kudzu/pcitable ; \
       else \
          install -m 644 pcitable $(prefix)/share/kudzu/pcitable ;\
       fi

install-program: kudzu
       install -m 644 printertable $(prefix)/share/kudzu/printertable

       install -m 755 -d $(prefix)/sbin
       install -m 755 -d $(prefix)/man/man1
       install -m 755 kudzu $(prefix)/sbin/kudzu
       install -m 755 -d $(sysconfdir)/rc.d/init.d
       install -m 644 kudzu.1 $(prefix)/man/man1/kudzu.1
       install -m 755 kudzu.init $(sysconfdir)/rc.d/init.d/kudzu
       install -m 755 -d $(prefix)/lib
       install -m 644 libkudzu.a $(prefix)/lib/libkudzu.a
       install -m 644 libmodules.a $(prefix)/lib/libmodules.a
       install -m 755 -d $(prefix)/include/kudzu
       for header in device.h ide.h keyboard.h kudzu.h modules.h parallel.h pci.h \
               psaux.h sbus.h scsi.h serial.h ; do \
               install -m 644 $$header $(prefix)/include/kudzu/$$header ; \
       done
       make -C po instroot=$(prefix) install


install: installdata
       mkdir -p $(prefix)/lib/python1.5/site-packages
       install -m 755 kudzumodule.so $(prefix)/lib/python1.5/site-packages

tag-archive:
       @cvs -Q tag -F $(CVSTAG)

create-archive:
       @rm -rf /tmp/kudzu
       @cd /tmp ; cvs -Q -d $(CVSROOT) export -r$(CVSTAG) kudzu || echo "Um... export aborted."
       @mv /tmp/kudzu /tmp/kudzu-$(VERSION)
       @cd /tmp ; tar -czSpf kudzu-$(VERSION).tar.gz kudzu-$(VERSION)
       @rm -rf /tmp/kudzu-$(VERSION)
       @cp /tmp/kudzu-$(VERSION).tar.gz .
       @rm -f /tmp/kudzu-$(VERSION).tar.gz
       @echo ""
       @echo "The final archive is in kudzu-$(VERSION).tar.gz"

archive: clean tag-archive create-archive

clean:
       rm -f *.o kudzu ktest ktest_loader modules *.a core *~ \
       kudzumodule.so *.tar.gz

dummy: