ifeq (Linux,$(shell uname))
ifeq (sparc,$(subst sparc64,sparc,$(shell uname -m)))
all: silo silocheck
else
all: intelsilo
endif
else
ifeq (SunOS,$(shell uname -s))
ifeq (5.,$(findstring 5.,$(shell uname -r)))
all: solarissilo solarissilocheck
else
all:
	@echo SunOS SILO not yet supported
endif
else
all:
	@echo SILO install program now supported on Linux/SPARC, Linux/i386
	@echo and Solaris only
endif
endif

silo: silo.c cdrom.h floppy.h prom.c prom.h first.h ultra.h cd.h
	gcc -I../include -I/usr/include -I/usr/src/linux/include -O2 -o silo silo.c prom.c
	strip silo
	ln -f silo ../sbin

silocheck: silocheck.c
	gcc -I../include -I/usr/include -I/usr/src/linux/include -O2 -o silocheck silocheck.c
	strip silocheck
	ln -f silocheck ../misc

intelsilo: silo.c cdrom.h floppy.h first.h ultra.h cd.h
	gcc -D__intel__ -I../include -I/usr/include -I/usr/src/linux/include -O2 -o intelsilo silo.c
	strip intelsilo
	ln -f intelsilo ../misc/intelsilo

solarissilo: silo.c ufs.c ufs.h cdrom.h floppy.h prom.c prom.h first.h ultra.h cd.h
	gcc -D__solaris__ -I../include -o solarissilo silo.c ufs.c prom.c
	strip solarissilo
	ln -f solarissilo ../misc

solarissilocheck: silocheck.c ufs.c ufs.h
	gcc -D__solaris__ -I../include -o solarissilocheck silocheck.c ufs.c
	strip solarissilocheck
	ln -f solarissilocheck ../misc

cdrom.h: cdrom.label util
	./util cdrom.label > cdrom.h

floppy.h: floppy.label util
	./util floppy.label | sed 's/cdrom/floppy/' > floppy.h

util: util.c
	gcc -o util util.c

ufs.h: ../second/ufs.h
	ln -sf ../second/ufs.h ufs.h

ufs.c: ../second/ufs.c
	ln -sf ../second/ufs.c ufs.c

first.h:
	cd ../first; make first.h

ultra.h:
	cd ../first; make ultra.h

cd.h:
	cd ../first; make cd.h

clean:
	rm -f $(INSTBOOT) $(TDEV) *.o *~ silo solarissilo sunossilo intelsilo cdrom.h floppy.h util silocheck solarissilocheck ufs.[ch]
