URL
https://opencores.org/ocsvn/darkriscv/darkriscv/trunk
Subversion Repositories darkriscv
[/] [darkriscv/] [trunk/] [src/] [Makefile] - Rev 2
Go to most recent revision | Compare with Previous | Blame | View Log
# Copyright (c) 2018, Marcelo Samsoniuk# All rights reserved.## Redistribution and use in source and binary forms, with or without# modification, are permitted provided that the following conditions are met:## * Redistributions of source code must retain the above copyright notice, this# list of conditions and the following disclaimer.## * Redistributions in binary form must reproduce the above copyright notice,# this list of conditions and the following disclaimer in the documentation# and/or other materials provided with the distribution.## * Neither the name of the copyright holder nor the names of its# contributors may be used to endorse or promote products derived from# this software without specific prior written permission.## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.ifndef HOST_CCHOST_CC = gccHOST_CFLAGS = -Wall -Wno-incompatible-library-redeclaration -I./include -Osendififndef CROSSARCH = rv32e#ARCH = rv32i#TODO: better way to switch little/big-endian:#ENDIAN = _le # gcc for little-endian#ENDIAN = _be # gcc for big-endianCROSS = riscv32-embedded$(ENDIAN)-elf#CROSS = riscv-elf#CROSS = riscv32-unknown-elf#CROSS = riscv32-embedded-elfCCPATH = /usr/local/share/gcc-$(CROSS)/bin/#CCPATH = /usr/local/share/toolchain-$(CROSS)/binHARVARD = 1endififndef BUILDBUILD = $(shell date -R)endifCC = $(CCPATH)/$(CROSS)-gccAS = $(CCPATH)/$(CROSS)-asLD = $(CCPATH)/$(CROSS)-ldOC = $(CCPATH)/$(CROSS)-objcopyOD = $(CCPATH)/$(CROSS)-objdumpCPP = $(CCPATH)/$(CROSS)-cppCCFLAGS = -Wall -I./include -Os -march=$(ARCH) -mabi=ilp32e -D__RISCV__ -DBUILD="\"$(BUILD)\"" -DARCH="\"$(ARCH)\""ASFLAGS = -march=$(ARCH)LDFLAGS = -T$(PROJ).ld -Map=$(PROJ).map -m elf32lriscv # -Ttext=0CPFLAGS = -P#CCFLAGS += -mcmodel=medany -mexplicit-relocs # relocable clodeifdef HARVARDCPFLAGS += -DHARVARD=1endifOCFLAGS = -O binary # --reverse-bytes=4 # workaround for darkriscv big-endian blockramsODFLAGS = -dPROJ = darksocvOBJS = boot.o stdio.o main.o io.o banner.oASMS = boot.s stdio.s main.s io.s banner.sSRCS = boot.c stdio.c main.c io.c banner.c#include app/Makefile.inDEPS = $(SRCS) $(ASMS) $(OBJS) $(PROJ).ld $(PROJ).ld.srcifdef HARVARDTARGETS = $(PROJ).rom.mem $(PROJ).ram.memelseTARGETS = $(PROJ).memendif.PHONY: allall: $(TARGETS) $(DEPS)echo sources ok.clean:-rm *.s *.o $(PROJ).{bin,lst,map,ram,rom,x86,text,data,bin,ld}%.o: %.s$(AS) $(ASFLAGS) -c $< -o $@%.s: %.c$(CC) $(CCFLAGS) -S $< -o $@$(PROJ).ld: $(PROJ).ld.src$(CPP) $(CPFLAGS) $(PROJ).ld.src $(PROJ).ld$(PROJ).o: $(OBJS) $(PROJ).ld$(LD) $(LDFLAGS) $(OBJS) -o $@$(OD) $(ODFLAGS) $@ > $(PROJ).lst$(PROJ).rom.mem: $(PROJ).o$(OC) $(OCFLAGS) $< $(PROJ).text --only-section .text*hexdump -ve '1/4 "%08x\n"' $(PROJ).text > $@#xxd -p -c 4 -g 4 $< > $@rm $(PROJ).textwc -l $@echo rom ok.$(PROJ).ram.mem: $(PROJ).o$(OC) $(OCFLAGS) $< $(PROJ).data --only-section .*data*hexdump -ve '1/4 "%08x\n"' $(PROJ).data > $@#xxd -p -c 4 -g 4 $< > $@rm $(PROJ).datawc -l $@echo ram ok.$(PROJ).mem: $(PROJ).o$(OC) $(OCFLAGS) $< $(PROJ).binhexdump -ve '1/4 "%08x\n"' $(PROJ).bin > $@#xxd -p -c 4 -g 4 $< > $@rm $(PROJ).binwc -l $@echo mem ok.$(PROJ).x86: $(SRCS)$(HOST_CC) $(HOST_CFLAGS) $(SRCS) -o $(PROJ).x86 -DBUILD="\"$(BUILD)\"" -DARCH="\"x86\""echo x86 ok.
Go to most recent revision | Compare with Previous | Blame | View Log
