| ## |
| ## Linux Loader for SPARC |
| ## |
| # |
| |
| DD=dd |
| |
| include ../Rules.make |
| |
| # Relocate to 2.5MB. The Hitchhiker's Guide to Open Boot Rev 3 claims |
| # that 3MB are guaranteed to be mapped. |
| # Changing this value will require changing a bunch of other constants throughout the code |
| LDFLAGS=-N -Ttext 0x4000 |
| |
| .S.o: |
| $(CC) $(CFLAGS) -c $*.S |
| |
| all: first.b first.h ultra.b ultra.h generic.b generic.h fd.b ieee32.b |
| |
| first.h: first |
| sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*digit_here.*$$/#define DIGIT_OFFSET_TMP 0x\2/p' < first.map > first.h |
| sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*letter_here.*$$/#define LETTER_OFFSET_TMP 0x\2/p' < first.map >> first.h |
| sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*number_here.*$$/#define NUMBER_OFFSET_TMP 0x\2/p' < first.map >> first.h |
| ultra.h: ultra |
| sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*letter_here.*$$/#define ULTRA_LETTER_OFFSET_TMP 0x\2/p' < ultra.map > ultra.h |
| sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*number_here.*$$/#define ULTRA_NUMBER_OFFSET_TMP 0x\2/p' < ultra.map >> ultra.h |
| generic.h: generic |
| sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*digit_here.*$$/#define GENERIC_DIGIT_OFFSET_TMP 0x\2/p' < generic.map > generic.h |
| sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*letter_here.*$$/#define GENERIC_LETTER_OFFSET_TMP 0x\2/p' < generic.map >> generic.h |
| sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*number_here.*$$/#define GENERIC_NUMBER_OFFSET_TMP 0x\2/p' < generic.map >> generic.h |
| fd.h: fd |
| sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*digit_here.*$$/#define FD_DIGIT_OFFSET_TMP 0x\2/p' < fd.map > fd.h |
| sed -n 's/^\(000000000000\|0000\)4\([0-9a-f][0-9a-f][0-9a-f]\) .*letter_here.*$$/#define FD_LETTER_OFFSET_TMP 0x\2/p' < fd.map >> fd.h |
| |
| first.o: first.S |
| $(CC) $(CFLAGS) -c first.S -o first.o |
| |
| first: first.o |
| $(LD) $(LDFLAGS) -o first first.o |
| $(NM) first | grep -v '*ABS*' | sort > first.map |
| $(STRIP) first |
| |
| first.b: first |
| $(ELFTOAOUT) -o first.b first |
| printf 'SILO'$(IMGVERSION) | $(DD) of=first.b bs=8 conv=notrunc seek=3 count=1 |
| $(DD) if=/dev/zero of=first.b bs=4 count=1 seek=127 |
| |
| ultra.o: ultra.S |
| $(CC) $(CFLAGS) -c -Wa,-Av9a ultra.S |
| |
| ultra: ultra.o |
| $(LD) $(LDFLAGS) -o ultra ultra.o |
| $(NM) ultra | grep -v '*ABS*' | sort > ultra.map |
| $(STRIP) ultra |
| |
| ultra.b: ultra |
| $(ELFTOAOUT) -o ultra.b ultra |
| printf 'SILO'$(IMGVERSION) | $(DD) of=ultra.b bs=8 conv=notrunc seek=3 count=1 |
| printf '\340' | $(DD) of=ultra.b bs=1 count=1 seek=7 conv=notrunc |
| $(DD) if=/dev/zero of=ultra.b bs=4 count=1 seek=127 |
| |
| generic.o: generic.S |
| $(CC) $(CFLAGS) -c -Wa,-Av9a generic.S |
| |
| generic: generic.o |
| $(LD) $(LDFLAGS) -o generic generic.o |
| $(NM) generic | grep -v '*ABS*' | sort > generic.map |
| $(STRIP) generic |
| |
| generic.b: generic |
| $(ELFTOAOUT) -o generic.b generic |
| printf 'SILO'$(IMGVERSION) | $(DD) of=generic.b bs=8 conv=notrunc seek=3 count=1 |
| printf '\340' | $(DD) of=generic.b bs=1 count=1 seek=7 conv=notrunc |
| $(DD) if=/dev/zero of=generic.b bs=4 count=1 seek=255 |
| |
| fd.o: fd.S |
| $(CC) $(CFLAGS) -c -Wa,-Av9a fd.S |
| |
| fd: fd.o |
| $(LD) $(LDFLAGS) -o fd fd.o |
| $(NM) fd | grep -v '*ABS*' | sort > fd.map |
| $(STRIP) fd |
| |
| fd.b: fd |
| $(ELFTOAOUT) -o fd.b fd |
| printf 'SILO'$(IMGVERSION) | $(DD) of=fd.b bs=8 conv=notrunc seek=3 count=1 |
| printf '\340' | $(DD) of=fd.b bs=1 count=1 seek=7 conv=notrunc |
| $(DD) if=/dev/zero of=fd.b bs=4 count=1 seek=255 |
| |
| ieee32.o: ieee32.S ieee32.h |
| $(CC) $(CFLAGS) -DIMGVERSION='"SILO$(IMGVERSION)"' -c ieee32.S |
| |
| ieee32.b: ieee32.o |
| $(LD) $(LDFLAGS) -o ieee32.b ieee32.o |
| $(NM) ieee32.b | grep -v '*ABS*' | sort > ieee32.map |
| $(STRIP) ieee32.b |
| chmod 644 ieee32.b |
| |
| clean: |
| $(RM) *.o *.map *.b first first.h ultra ultra.h \ |
| generic generic.h fd fd.h |