VERSION = 1.2

STRIP = echo
DEBUG = -g

OPTS = -O2

CFLAGS = $(DEBUG) $(OPTS) -Wall -DVERSION=\"$(VERSION)\" -D_GNU_SOURCE=1 -I /usr/include/rpm -DUSE_ALT_DNS=1
LDFLAGS = $(DEBUG) 
CRYPT=/usr/lib/libcrypt.a

ARCH := $(patsubst i%86,i386,$(shell uname -m))
ifeq (alpha,$(ARCH))
ARCHOBJS2 = kernel.o kbd.o fsedit.o
ARCHOBJS1 = kbd.o
else
ifeq (i386,$(ARCH))
ARCHOBJS2 = lilo.o smb.o kbd.o fsedit.o
ARCHOBJS1 = smb.o kbd.o
else
# SPARC
ARCHOBJS2 = lilo.o
endif
endif

OBJS = perror.o net.o log.o nfsmount.o mount_xdr.o windows.o devices.o \
	scsi.o fs.o run.o mkswap.o mono.o bootpc.o dns.o kickstart.o
OBJS1 = earlymethods.o install.o cdrom.o $(ARCHOBJS1)
OBJS2 = doit.o pkgs.o config.o hd.o latemethods.o install2.o ftp.o \
	upgrade.o hash.o mtab.o commands.o cdrom.o printercfg.o gettext.o \
	$(ARCHOBJS2)
PROGS = install install2 genhdlist dmphdlist

#---------------

INST1LIBS:=-lpopt -lnewt /usr/lib/libslang.a /usr/lib/libm.a \
		/usr/lib/libresolv.a
INST2LIBS:=-lpopt /usr/lib/libdb.a /usr/lib/libz.a /usr/lib/libslang.a \
	   /usr/lib/libm.a -lresolv
INST1DEPLIBS=
INST2DEPLIBS=

SUBDIRS=

ifeq (i386,$(ARCH))
STATIC=-static
INST1DEPLIBS+=./pci-probing/libpciprobe.a ./pcmcia-probing/libpcmciaprobe.a
INST2LIBS:=/usr/lib/libnewt.a $(INST2LIBS)
INST2DEPLIBS=./libfdisk/libfdisk.a ./pci-probing/libpciprobe.a
SUBDIRS+=libfdisk pci-probing pcmcia-probing 
else
ifeq (alpha,$(ARCH))
STATIC=
INST1DEPLIBS+=
INST2LIBS:=/usr/lib/libnewt.a $(INST2LIBS)
INST2DEPLIBS=./libfdisk/libfdisk.a 
SUBDIRS+=libfdisk
else
ifeq (sparc,$(ARCH))
STATIC=
INST1DEPLIBS+=-lm
INST2LIBS:=-lnewt $(INST2LIBS) -lm
INST2DEPLIBS=
SUBDIRS+=
endif
endif
STATIC=
INST2LIBS:=/usr/lib/libnewt.a $(INST2LIBS)
endif

INST1LIBS+=/usr/lib/libz.a -lrpm
SOURCES = $(subst .o,.c,$(OBJS2) $(OBJS1) $(OBJS)) 

ifeq (.depend,$(wildcard .depend))
TARGET=subdirs $(PROGS)
else
TARGET=depend subdirs $(PROGS)
endif

all: $(TARGET)

install: $(OBJS) $(OBJS1) $(INST1DEPLIBS)
	gcc $(STATIC) $(LDFLAGS) -o install $^ $(INST1LIBS) $(INST1DEPLIBS)
	$(STRIP) install

install2: $(OBJS) $(OBJS2) /usr/lib/librpm.a $(INST2DEPLIBS)
	gcc $(LDFLAGS) -o install2 $^ $(INST2LIBS) $(CRYPT) $(INST2DEPLIBS)
	$(STRIP) install2

subdirs:
	for d in $(SUBDIRS); do \
	(cd $$d; $(MAKE)) \
	  || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac;\
        done && test -z "$$fail"

ftp.o: ftp.c
	$(CC) $(CFLAGS) -DHAVE_CONFIG_H=1 -DHAVE_ALLOCA_H=1 -DHAVE_NETINET_IN_SYSTM_H=1 -c $<

genhdlist: /usr/lib/librpm.a gettext.o

dmphdlist: /usr/lib/librpm.a gettext.o

ugtest: ugtest.o pkgs.o upgrade.o log.o windows.o hash.o kickstart.o
	gcc $(LDFLAGS) -o ugtest $^ $(INST2LIBS) -lrpm -ldb -lz


clean: 
	rm -f $(OBJS2) $(OBJS1) $(OBJS)

	# get subdirectories as well
	for d in $(SUBDIRS); do \
	(cd $$d; $(MAKE) clean) \
	  || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac;\
        done && test -z "$$fail"

depend:
	$(CPP) $(CFLAGS) -M $(SOURCES) > .depend

co:
	co RCS/*,v

ifeq (.depend,$(wildcard .depend))
include .depend
endif                                           
