From d5be6f7cd4bedb62331f1ab61c63e74897b17d46 Mon Sep 17 00:00:00 2001 From: bushing Date: Tue, 22 Dec 2009 12:50:34 +0000 Subject: [PATCH 1/1] fix OS detection, libgcc detection --- Makefile | 14 +++----------- armsrc/Makefile | 2 +- common/Makefile.common | 30 ++++++++++++++---------------- 3 files changed, 18 insertions(+), 28 deletions(-) diff --git a/Makefile b/Makefile index 287dc041..bb0d5589 100644 --- a/Makefile +++ b/Makefile @@ -1,21 +1,13 @@ include common/Makefile.common -ifeq ($(DETECTED_OS),Linux) -HOST_BINARY=linux -else -HOST_BINARY=winsrc -endif - -all clean: %: bootrom/% armsrc/% $(HOST_BINARY)/% +all clean: %: bootrom/% armsrc/% client/% bootrom/%: FORCE $(MAKE) -C bootrom $(patsubst bootrom/%,%,$@) armsrc/%: FORCE $(MAKE) -C armsrc $(patsubst armsrc/%,%,$@) -linux/%: FORCE - $(MAKE) -C linux $(patsubst linux/%,%,$@) -winsrc/%: FORCE - $(MAKE) -C winsrc $(patsubst winsrc/%,%,$@) +client/%: FORCE + $(MAKE) -C client $(patsubst client/%,%,$@) FORCE: # Dummy target to force remake in the subdirectories, even if files exist (this Makefile doesn't know about the prerequisites) diff --git a/armsrc/Makefile b/armsrc/Makefile index 2cfac4ac..97805b7a 100644 --- a/armsrc/Makefile +++ b/armsrc/Makefile @@ -36,7 +36,7 @@ all: $(OBJDIR)/osimage.s19 $(OBJDIR)/fpgaimage.s19 $(OBJDIR)/fpga.o: fpga.bit $(OBJCOPY) -O elf32-littlearm -I binary -B arm --redefine-sym _binary____fpga_fpga_bit_start=_binary_fpga_bit_start --redefine-sym _binary____fpga_fpga_bit_end=_binary_fpga_bit_end --prefix-sections=fpga_bit $^ $@ -$(OBJDIR)/fullimage.elf: $(VERSIONOBJ) $(OBJDIR)/fpga.o $(THUMBOBJ) $(ARMOBJ) $(ARMLIB)/libgcc.a +$(OBJDIR)/fullimage.elf: $(VERSIONOBJ) $(OBJDIR)/fpga.o $(THUMBOBJ) $(ARMOBJ) $(LIBGCC) $(LD) -g -Tldscript -Map=$(patsubst %.elf,%.map,$@) -o $@ $^ $(OBJDIR)/fpgaimage.elf: $(OBJDIR)/fullimage.elf diff --git a/common/Makefile.common b/common/Makefile.common index 6260eb05..c2903a8f 100644 --- a/common/Makefile.common +++ b/common/Makefile.common @@ -9,6 +9,16 @@ # (The including Makefile still needs to define what 'all' is) all: +CROSS = arm-elf- +CC = $(CROSS)gcc +AS = $(CROSS)as +LD = $(CROSS)ld +OBJCOPY = $(CROSS)objcopy + +OBJDIR = obj + +INCLUDE = -I../include + # Windows' echo echos its input verbatim, on Posix there is some # amount of shell command line parsing going on. echo "" on # Windows yields literal "", on Linux yields an empty line @@ -16,17 +26,14 @@ ifeq ($(shell echo ""),) # This is probably a proper system, so we can use uname UNAME := $(shell uname) -ifeq ($(UNAME), Linux) -# Linux. (Todo: Add MacOS X if appropriate) DELETE=rm -rf MOVE=mv COPY=cp PATHSEP=/ -FLASH_TOOL=linux/flasher -DETECTED_OS=Linux +FLASH_TOOL=client/flasher +DETECTED_OS=UNAME # You may/should set this in your environment -ARMLIB ?= /usr/local/lib/gcc/arm-elf/4.3.3/interwork -endif +LIBGCC ?= $(shell $(CC) -print-libgcc-file-name) else @@ -35,21 +42,12 @@ DELETE=del /q MOVE=ren COPY=copy PATHSEP=\\# -ARMLIB ?= ../../devkitARM/lib/gcc/arm-elf/4.1.0/interwork +LIBGCC ?= ../../devkitARM/lib/gcc/arm-elf/4.1.0/interwork/libgcc.a FLASH_TOOL=winsrc\\prox.exe DETECTED_OS=Windows endif -CROSS = arm-elf- -CC = $(CROSS)gcc -AS = $(CROSS)as -LD = $(CROSS)ld -OBJCOPY = $(CROSS)objcopy - -OBJDIR = obj - -INCLUDE = -I../include # Also search prerequisites in the common directory (for usb.c), and the fpga directory (for fpga.bit) VPATH = . ../common/ ../fpga/ -- 2.39.5