+# Copyright (c) 2005
+# The Regents of The University of Michigan
+# All Rights Reserved
+#
+# This code is part of the M5 simulator.
+#
+# Permission is granted to use, copy, create derivative works and
+# redistribute this software and such derivative works for any purpose,
+# so long as the copyright notice above, this grant of permission, and
+# the disclaimer below appear in all copies made; and so long as the
+# name of The University of Michigan is not used in any advertising or
+# publicity pertaining to the use or distribution of this software
+# without specific, written prior authorization.
+#
+# THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION FROM THE
+# UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY PURPOSE, AND WITHOUT
+# WARRANTY BY THE UNIVERSITY OF MICHIGAN OF ANY KIND, EITHER EXPRESS OR
+# IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE REGENTS OF
+# THE UNIVERSITY OF MICHIGAN SHALL NOT BE LIABLE FOR ANY DAMAGES,
+# INCLUDING DIRECT, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+# DAMAGES, WITH RESPECT TO ANY CLAIM ARISING OUT OF OR IN CONNECTION
+# WITH THE USE OF THE SOFTWARE, EVEN IF IT HAS BEEN OR IS HEREAFTER
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+#
+# Authors: Nathan L. Binkert
+# Ali G. Saidi
+
+### If we are not compiling on an alpha, we must use cross tools ###
+ifneq ($(shell uname -m), alpha)
+CROSS_COMPILE?=alpha-unknown-linux-gnu-
+endif
+CC=$(CROSS_COMPILE)gcc
+AS=$(CROSS_COMPILE)as
+LD=$(CROSS_COMPILE)ld
+
+DBMENTRY= fffffc0000010000
+CFLAGS=-I . -I ../h -I$(M5)/src/dev -I$(M5)/util/m5/ -fno-builtin -Wa,-m21164
+OBJS=dbmentry.o printf.o paljtokern.o paljtoslave.o console.o m5op.o
+
+### Make sure that the M5 variable is set ###
+ifndef M5
+$(error The M5 variable must be set)
+endif
all: console
-DBMENTRY = fffffc0000010000
-INCLUDES = -I$(PALCODE) -I$(INCLUDEH) -I$(M5)/dev
+m5op.o: $(M5)/util/m5/m5op.S
+ $(CC) $(CFLAGS) -nostdinc -o $@ -c $<
-SOURDIR = ./
-PALCODE = ../palcode
-INCLUDEH = ../h
-CC=gcc
-AS=gas
+%.o: %.S
+ $(CC) $(CFLAGS) -nostdinc -o $@ -c $<
-dbmentry.o: dbmentry.s
- $(AS) $(INCLUDES) -nointrinsics -o $*.o $*.s
+%.o: %.c
+ $(CC) -g3 $(CFLAGS) -o $@ -c $<
-console.o: console.c
- $(CC) -g3 $(INCLUDES) -nointrinsics -o $*.o -c $*.c
-
-printf.o: printf.c
- $(CC) -g3 $(INCLUDES) -nointrinsics -o $*.o -c $*.c
-
-paljtokern.s.o: paljtokern.s
- g++ -I ../palcode -E -P -nostdinc -nostdinc++ -x c++ paljtokern.s | \
- gas -m 21164 -o paljtokern.s.o
-
-paljtoslave.s.o: paljtoslave.s
- g++ -I ../palcode -E -P -nostdinc -nostdinc++ -x c++ paljtoslave.s | \
- gas -m 21164 -o paljtoslave.s.o
-
-paljtokern.c: paljtokern.s.o
- echo 'unsigned int palJToKern[] = {' > paljtokern.c
- dis paljtokern.s.o | awk '{print "0x"$$2","}' >> paljtokern.c
- echo "0x0\n};" >> paljtokern.c
-
-paljtoslave.c: paljtoslave.s.o
- echo "unsigned int palJToSlave[] = {" > paljtoslave.c
- dis paljtoslave.s.o | awk '{print "0x"$$2","}' >> paljtoslave.c
- echo "0x0\n};" >> paljtoslave.c
-
-paljtokern.c.o: paljtokern.c
- $(CC) -g3 -nointrinsics -o paljtokern.c.o -c paljtokern.c
-
-paljtoslave.c.o: paljtoslave.c
- $(CC) -g3 -nointrinsics -o paljtoslave.c.o -c paljtoslave.c
-
-console: console.o dbmentry.o printf.o paljtokern.c.o paljtoslave.c.o
- $(LD) -o console -N -T $(DBMENTRY) -non_shared \
- dbmentry.o console.o printf.o paljtokern.c.o paljtoslave.c.o -lc
-
-install: console
- scp console zizzer.eecs.umich.edu:/z/m5/system/testing/binaries/console
+console: $(OBJS)
+ $(LD) -o console -N -Ttext $(DBMENTRY) -non_shared $(OBJS) -lc
clean:
- rm -f *.o console *.strip paljtokern.c paljtoslave.c
+ rm -f *.o console