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,38 +9,6 @@ # (The including Makefile still needs to define what 'all' is) all: -# 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 -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 -# You may/should set this in your environment -ARMLIB ?= /usr/local/lib/gcc/arm-elf/4.3.3/interwork -endif - -else - -# Assume that we are running on Windows. -DELETE=del /q -MOVE=ren -COPY=copy -PATHSEP=\\# -ARMLIB ?= ../../devkitARM/lib/gcc/arm-elf/4.1.0/interwork -FLASH_TOOL=winsrc\\prox.exe -DETECTED_OS=Windows - -endif - CROSS = arm-elf- CC = $(CROSS)gcc AS = $(CROSS)as @@ -51,6 +19,36 @@ 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 +ifeq ($(shell echo ""),) + +# This is probably a proper system, so we can use uname +UNAME := $(shell uname) +DELETE=rm -rf +MOVE=mv +COPY=cp +PATHSEP=/ +FLASH_TOOL=client/flasher +DETECTED_OS=UNAME +# You may/should set this in your environment +LIBGCC ?= $(shell $(CC) -print-libgcc-file-name) + +else + +# Assume that we are running on Windows. +DELETE=del /q +MOVE=ren +COPY=copy +PATHSEP=\\# +LIBGCC ?= ../../devkitARM/lib/gcc/arm-elf/4.1.0/interwork/libgcc.a +FLASH_TOOL=winsrc\\prox.exe +DETECTED_OS=Windows + +endif + + # Also search prerequisites in the common directory (for usb.c), and the fpga directory (for fpga.bit) VPATH = . ../common/ ../fpga/