1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
#
# proll:
# roxy-xxx/Makefile - make PROLL for Roxy
# $Id: Makefile,v 1.11 2002/07/23 06:07:11 zaitcev Exp $
#
# Copyright 1999,2000 Pete Zaitcev
# This is Free Software is licensed under terms of GNU General Public License.
#
CC = gcc
#CROSS = /usr/local/sparc/bin/sparc-sun-linux-
CROSS = sparc-unknown-linux-gnu-
CROSSCC = $(CROSS)gcc
CROSSLD = $(CROSS)ld
CROSSNM = $(CROSS)nm
RM = /bin/rm -f
ELFTOAOUT = elftoaout
#
SRC = ../src
# Due to remapping algorithm PROLBASE should be algned on PMD.
# We make PROLBASE a define instead of using _start because we
# want to shift it to form a PGD entry. A relocatable label will not work.
# Linux kernel expects us to be at LINUX_OPPROM_BEGVM <asm-sparc/openprom.h>.
PROLBASE = 0xffd04000
# Roxy loads stuff at 0xE1401000, so we should link on xxxx1000 if
# we want PMD remapping to work in head.S. On the other hand, we
# have LOADBASE too firmly placed on 0x4000. So, we link to FFD01000,
# but head.S has a hole in it that allows to keep PROLBASE at FFD04000.
ROXYBASE = 0xffd01000
# Linux
# Fixed %g6 is for arch/sparc/kernel/head.S, it seems ok w/o -ffixed-g6.
# Kernel uses -fcall-used-g5 -fcall-used-g7, we probably do not need them.
# __ANSI__ is supposed to be on by default but it is not.
CFLAGS = -O -Wall -DPROLBASE=$(PROLBASE) -D__ANSI__=1 -I$(SRC)
ASFLAGS = -D__ASSEMBLY__ -I$(SRC)
# Solaris or Linux/i386 cross compilation
#CFLAGS = -Iinclude -O
LDFLAGS = -N -Ttext $(ROXYBASE)
ALL = proll.bin
PROLLEXE = proll.elf
OBJS = head.o wuf.o wof.o main.o vcons_su.o \
printf.o rem.o sdiv.o umul.o udiv.o urem.o system.o cs89x0.o pcic.o \
arp.o netinit.o rarp.o packet.o tftp.o udp.o sched_2ep.o openprom.o
all: $(ALL)
$(PROLLEXE): $(OBJS)
$(CROSSLD) $(LDFLAGS) -o $(PROLLEXE) $(OBJS)
head.o: head.S $(SRC)/asi.h $(SRC)/psr.h
$(CROSSCC) $(ASFLAGS) -DPROLBASE=$(PROLBASE) -o $*.o -c $*.S
main.o: main.c $(SRC)/pgtsrmmu.h $(SRC)/phys_ro.h $(SRC)/vconsole.h \
$(SRC)/version.h $(SRC)/general.h $(SRC)/net.h $(SRC)/romlib.h \
$(SRC)/netpriv.h $(SRC)/arpa.h $(SRC)/system.h
$(CROSSCC) $(CFLAGS) -c $*.c
openprom.o: openprom.c $(SRC)/general.h $(SRC)/romlib.h $(SRC)/system.h \
$(SRC)/phys_jk.h $(SRC)/vconsole.h
$(CROSSCC) $(CFLAGS) -c $*.c
system.o: $(SRC)/system.c $(SRC)/vconsole.h $(SRC)/pgtsrmmu.h \
$(SRC)/timer.h $(SRC)/general.h $(SRC)/net.h $(SRC)/romlib.h \
$(SRC)/netpriv.h $(SRC)/arpa.h $(SRC)/system.h
$(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
# eeprom.o: $(SRC)/eeprom.c $(SRC)/phys_jk.h $(SRC)/general.h \
# $(SRC)/romlib.h $(SRC)/system.h
# $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
pcic.o: $(SRC)/pcic.c $(SRC)/vconsole.h $(SRC)/pgtsrmmu.h \
$(SRC)/phys_jk.h $(SRC)/pcic.h $(SRC)/general.h $(SRC)/romlib.h $(SRC)/system.h
$(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
vcons_su.o: $(SRC)/vcons_su.c $(SRC)/vconsole.h $(SRC)/system.h
$(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
# vconsole.o: $(SRC)/vconsole.c $(SRC)/vconsole.h $(SRC)/hconsole.h
# $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
# hconsole.o: $(SRC)/hconsole.c $(SRC)/hconsole.h $(SRC)/rconsole.h $(SRC)/phys_jj.h
# $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
# rconsole.o: $(SRC)/rconsole.c $(SRC)/rconsole.h
# $(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
printf.o: $(SRC)/printf.c
$(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
cs89x0.o: $(SRC)/cs89x0.c $(SRC)/cs89x0.h $(SRC)/general.h \
$(SRC)/romlib.h $(SRC)/net.h $(SRC)/netpriv.h $(SRC)/system.h
$(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
arp.o: $(SRC)/arp.c $(SRC)/general.h $(SRC)/net.h $(SRC)/romlib.h $(SRC)/netpriv.h $(SRC)/arp.h
$(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
netinit.o: $(SRC)/netinit.c $(SRC)/general.h $(SRC)/net.h $(SRC)/romlib.h $(SRC)/netpriv.h $(SRC)/arp.h $(SRC)/ip.h $(SRC)/udp.h
$(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
tftp.o: $(SRC)/tftp.c $(SRC)/general.h $(SRC)/net.h $(SRC)/arpa.h \
$(SRC)/romlib.h $(SRC)/tftp.h
$(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
udp.o: $(SRC)/udp.c $(SRC)/general.h $(SRC)/net.h $(SRC)/romlib.h $(SRC)/netpriv.h $(SRC)/arp.h $(SRC)/ip.h $(SRC)/udp.h
$(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
packet.o: $(SRC)/packet.c $(SRC)/general.h $(SRC)/net.h $(SRC)/romlib.h $(SRC)/netpriv.h
$(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
sched_2ep.o: $(SRC)/sched_2ep.c $(SRC)/system.h $(SRC)/general.h $(SRC)/romlib.h $(SRC)/phys_jk.h $(SRC)/pcic.h
$(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
# Roxy uses RARP, so let's go with that and avoid dual servers.
# bootp.o: $(SRC)/bootp.c $(SRC)/general.h $(SRC)/net.h \
# $(SRC)/arpa.h $(SRC)/romlib.h $(SRC)/system.h $(SRC)/bootp.h
# $(CROSSCC) $(CFLAGS) -DNOBPEXT=1 -c $(SRC)/$*.c
rarp.o: $(SRC)/rarp.c $(SRC)/general.h $(SRC)/romlib.h $(SRC)/net.h \
$(SRC)/netpriv.h $(SRC)/arp.h
$(CROSSCC) $(CFLAGS) -c $(SRC)/$*.c
wuf.o: $(SRC)/wuf.S
$(CROSSCC) $(ASFLAGS) -o $*.o -c $(SRC)/$*.S
wof.o: $(SRC)/wof.S
$(CROSSCC) $(ASFLAGS) -o $*.o -c $(SRC)/$*.S
rem.o: $(SRC)/rem.S
$(CROSSCC) $(ASFLAGS) -o $*.o -c $(SRC)/$*.S
sdiv.o: $(SRC)/sdiv.S
$(CROSSCC) $(ASFLAGS) -o $*.o -c $(SRC)/$*.S
udiv.o: $(SRC)/udiv.S
$(CROSSCC) $(ASFLAGS) -o $*.o -c $(SRC)/$*.S
urem.o: $(SRC)/urem.S
$(CROSSCC) $(ASFLAGS) -o $*.o -c $(SRC)/$*.S
umul.o: $(SRC)/umul.S
$(CROSSCC) $(ASFLAGS) -o $*.o -c $(SRC)/$*.S
clean:
$(RM) $(OBJS)
$(RM) $(PROLLEXE) proll.bin
proll.bin: $(PROLLEXE)
$(ELFTOAOUT) -b -o proll.bin $(PROLLEXE)
|