metalsvm/newlib/Makefile

50 lines
1.1 KiB
Makefile
Raw Normal View History

TOPDIR = $(shell pwd)
ARCH = x86
ifeq ($(ARCH),x86)
TARGET=i586-metalsvm-elf32
endif
ifeq ($(ARCH),x86_64)
TARGET=x86_64-metalsvm-elf64
endif
NEWLIB = $(TOPDIR)/$(ARCH)/$(TARGET)
RM = rm -rf
CD = cd
MKDIR = mkdir
TMP = $(TOPDIR)/tmp
OPT = --disable-shared --disable-multilib --enable-newlib-hw-fp
export CC_FOR_TARGET=gcc
export CXX_FOR_TARGET=g++
export GCC_FOR_TARGET=gcc
export AR_FOR_TARGET=ar
export AS_FOR_TARGET=as
export LD_FOR_TARGET=ld
export NM_FOR_TARGET=nm
export OBJDUMP_FOR_TARGET=objdump
export RANLIB_FOR_TARGET=ranlib
export STRIP_FOR_TARGET=strip
export READELF_FOR_TARGET=readelf
export CFLAGS
export CXXFLAGS=$(CFLAGS)
export CPPFLAGS=$(CFLAGS)
export NASMFLAGS
default: $(ARCH)
$(MAKE) -C examples depend
$(MAKE) CFLAGS+="-nostdinc -Wall -fno-builtin -I$(NEWLIB)/include -I../../include -I../../arch/$(ARCH)/include" LDFLAGS="-nostdlib -L$(NEWLIB)/lib" -C examples
$(ARCH):
$(RM) $(TMP)
$(MKDIR) $(TMP)
$(CD) $(TMP); $(TOPDIR)/src/configure --target=$(TARGET) --prefix=$(TOPDIR)/$(ARCH) $(OPT) && make && make install
clean:
$(MAKE) -C examples clean
$(RM) $(TMP)
veryclean: clean
$(MAKE) -C examples clean
$(RM) $(TOPDIR)/$(ARCH)