fix OS detection, libgcc detection

This commit is contained in:
bushing 2009-12-22 12:50:34 +00:00
parent 1dea88f976
commit d5be6f7cd4
3 changed files with 34 additions and 44 deletions

View file

@ -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)

View file

@ -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

View file

@ -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/