Makefile.aarch64 revision 13103
112967Smatteo.andreozzi@arm.com# Copyright (c) 2010 ARM Limited 212967Smatteo.andreozzi@arm.com# All rights reserved. 312967Smatteo.andreozzi@arm.com# 412967Smatteo.andreozzi@arm.com# The license below extends only to copyright in the software and shall 512967Smatteo.andreozzi@arm.com# not be construed as granting a license to any other intellectual 612967Smatteo.andreozzi@arm.com# property including but not limited to intellectual property relating 712967Smatteo.andreozzi@arm.com# to a hardware implementation of the functionality of the software 812967Smatteo.andreozzi@arm.com# licensed hereunder. You may use the software subject to the license 912967Smatteo.andreozzi@arm.com# terms below provided that you ensure that this notice is replicated 1012967Smatteo.andreozzi@arm.com# unmodified and in its entirety in all distributions of the software, 1112967Smatteo.andreozzi@arm.com# modified or unmodified, in source code or in binary form. 1212967Smatteo.andreozzi@arm.com# 1312967Smatteo.andreozzi@arm.com# Copyright (c) 2005-2006 The Regents of The University of Michigan 1412967Smatteo.andreozzi@arm.com# All rights reserved. 1512967Smatteo.andreozzi@arm.com# 1612967Smatteo.andreozzi@arm.com# Redistribution and use in source and binary forms, with or without 1712967Smatteo.andreozzi@arm.com# modification, are permitted provided that the following conditions are 1812967Smatteo.andreozzi@arm.com# met: redistributions of source code must retain the above copyright 1912967Smatteo.andreozzi@arm.com# notice, this list of conditions and the following disclaimer; 2012967Smatteo.andreozzi@arm.com# redistributions in binary form must reproduce the above copyright 2112967Smatteo.andreozzi@arm.com# notice, this list of conditions and the following disclaimer in the 2212967Smatteo.andreozzi@arm.com# documentation and/or other materials provided with the distribution; 2312967Smatteo.andreozzi@arm.com# neither the name of the copyright holders nor the names of its 2412967Smatteo.andreozzi@arm.com# contributors may be used to endorse or promote products derived from 2512967Smatteo.andreozzi@arm.com# this software without specific prior written permission. 2612967Smatteo.andreozzi@arm.com# 2712967Smatteo.andreozzi@arm.com# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 2812967Smatteo.andreozzi@arm.com# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 2912967Smatteo.andreozzi@arm.com# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 3012967Smatteo.andreozzi@arm.com# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 3112967Smatteo.andreozzi@arm.com# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 3212967Smatteo.andreozzi@arm.com# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 3312967Smatteo.andreozzi@arm.com# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 3412967Smatteo.andreozzi@arm.com# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 3512967Smatteo.andreozzi@arm.com# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 3612967Smatteo.andreozzi@arm.com# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 3712967Smatteo.andreozzi@arm.com# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 3812967Smatteo.andreozzi@arm.com# 3912967Smatteo.andreozzi@arm.com# Authors: Nathan Binkert 4012967Smatteo.andreozzi@arm.com# Ali Saidi 4112967Smatteo.andreozzi@arm.com 4212967Smatteo.andreozzi@arm.com### If we are not compiling on an arm v8, we must use cross tools ### 4312967Smatteo.andreozzi@arm.comifneq ($(shell uname -m), aarch64) 4412967Smatteo.andreozzi@arm.comCROSS_COMPILE?=aarch64-linux-gnu- 4512967Smatteo.andreozzi@arm.comendif 4612967Smatteo.andreozzi@arm.comCC=$(CROSS_COMPILE)gcc 4712967Smatteo.andreozzi@arm.comAS=$(CROSS_COMPILE)as 4812967Smatteo.andreozzi@arm.comLD=$(CROSS_COMPILE)ld 4912967Smatteo.andreozzi@arm.comAR=$(CROSS_COMPILE)ar 5012967Smatteo.andreozzi@arm.com 5112967Smatteo.andreozzi@arm.comJC=javac 5212967Smatteo.andreozzi@arm.comJH=javah 5312967Smatteo.andreozzi@arm.comJR=jar 5412967Smatteo.andreozzi@arm.com### JDK_PATH must be set to build gem5OpJni 5512967Smatteo.andreozzi@arm.com#JDK_PATH=/path/to/jdk/version_number 5612967Smatteo.andreozzi@arm.com 5712967Smatteo.andreozzi@arm.comCFLAGS=-O2 -I $(JDK_PATH)/include/ -I $(JDK_PATH)/include/linux \ 5812967Smatteo.andreozzi@arm.com -I../../include -march=armv8-a 5912967Smatteo.andreozzi@arm.comLDFLAGS=-static -L. -lm5 6012967Smatteo.andreozzi@arm.com 6112967Smatteo.andreozzi@arm.comLIB_OBJS=m5op_arm_A64.o m5_mmap.o 6212967Smatteo.andreozzi@arm.comOBJS=m5.o 6312967Smatteo.andreozzi@arm.comJNI_OBJS=m5op_arm_A64.o jni_gem5Op.o 64LUA_OBJS=lua_gem5Op.o m5op_arm_A64.o m5_mmap.o 65 66### Need to install lua5.1 library to compile gem5OpLua.so 67LUA_HEADER_INCLUDE=$(shell pkg-config --cflags lua51) -I/usr/include/x86_64-linux-gnu 68 69all: libm5.a m5 70 71%.o: %.S 72 $(CC) $(CFLAGS) -o $@ -c $< 73 74%.o: %.c 75 $(CC) $(CFLAGS) -o $@ -c $< 76 77m5: $(OBJS) libm5.a 78 $(CC) -o $@ $^ $(LDFLAGS) 79 80libm5.a: $(LIB_OBJS) 81 $(AR) rcs $@ $^ 82 83gem5OpJni: gem5OpJni.jar $(JNI_OBJS) 84 $(CC) --shared -o lib$@.so $(JNI_OBJS) 85 86gem5OpJni.jar: 87 $(JC) jni/gem5Op.java; \ 88 $(JH) jni.gem5Op; \ 89 $(JR) cvf $@ jni/*.class 90 91lua_gem5Op.o: lua_gem5Op.c 92 $(CC) $(CFLAGS) $(LUA_HEADER_INCLUDE) -o $@ -c $< 93 94gem5OpLua.so: $(LUA_OBJS) 95 $(CC) $(CFLAGS) $^ -o $@ -shared 96 97clean: 98 rm -f *.o m5 libgem5OpJni.so gem5OpJni.jar jni/*.class libm5.a gem5OpLua.so 99