# $Header: Default_Makefile,r60 2006-03-01 12:33:07 ingo $ # Default HPGCC Makefile # Copyright (c) 2006 The HP-GCC Development Team #Automatic compiler detection for cygwin/linux #export CC_TARGET=arm-elf ifeq ($(CC_TARGET),) ifeq ($(SHELL),) $(warning Compiler detection does not work on Windows) $(warning Assuming CC_TARGET=arm-elf) export CC_TARGET=arm-elf endif ifeq ($(CC_TARGET),) ifneq ($(shell which 2>/dev/null arm-linux-gcc),) export CC_TARGET=arm-linux else ifneq ($(shell which 2>/dev/null arm-elf-gcc),) export CC_TARGET=arm-elf else $(error No compiler found. Check PATH or provide a CC_TARGET) endif endif endif endif ifndef THUMB # Generate Thumb instructions & link against Thumb libs THUMB=1 endif INCLUDE_PATH=$(HPGCC)/include LIBS_PATH=$(HPGCC)/lib # enumerate libs ... # TODO: Thumb/ARM switch LIBDECNUMBER=decnumber LIBFSYSTEM=fsystem LIBGGL=ggl LIBHPLIB=hplib LIBHPG=hpg LIBGCC=gcc LIBS= -l$(LIBGGL) -l$(LIBHPLIB) -l$(LIBHPG) -l$(LIBHPLIB) -l$(LIBFSYSTEM) -l$(LIBHPLIB) -l$(LIBDECNUMBER) -l$(LIBHPLIB) -l$(LIBGCC) ELF2HP= $(HPGCC)/elf2hp/elf2hp export CC=$(CC_TARGET)-gcc export AS=$(CC_TARGET)-as export LD=$(CC_TARGET)-ld export AR=$(CC_TARGET)-ar ifeq ($(PLATFORM),cygwin) endif export CUR_DIR= $(shell pwd) ARM_ELF_CFLAGS= -mtune=arm920t -mcpu=arm920t \ -mlittle-endian -fomit-frame-pointer -msoft-float -Wall \ -Os -pipe -mthumb-interwork ifdef THUMB ifneq ($(THUMB),0) ARM_ELF_CFLAGS += -mthumb endif endif export ARM_ELF_CFLAGS export ARM_ELF_ASFLAGS= -EL -k -mcpu=arm920t -mno-fpu -mthumb-interwork export ARM_ELF_LDFLAGS= -nodefaultlibs -nostdlib #Use standard crt0.o export SPECIAL_CRT0=$(LIBS_PATH)/crt0.o #Use special crt0 module #export SPECIAL_CRT0=$(LIBS_PATH)/your_custom_crt0_here.o #GENERAL ELF2HP FLAGS, RESERVE SMALL STACK SPACE export ELF2HPFLAGS=-d5 -s10000 -V #GENERAL ELF2HP FLAGS, RESERVE LARGE STACK SPACE #export ELF2HPFLAGS=-d15 -s65536 -V #GENERAL ELF2HP FLAGS, FULL MAIN RAM AVAILABLE FOR STACK #export ELF2HPFLAGS=-C -V SRC = $(shell echo *.c) OBJ=$(SRC:%.c=%.o) EXE=$(SRC:%.c=%.exe) HP=$(SRC:%.c=%.hp) all: $(HP) install: all clean: rm -rf *.o *.a *.exe *.hp %.o : %.c $(CC) ${ARM_ELF_CFLAGS} -I$(INCLUDE_PATH) -I.. -c $< -o $@ %.exe : %.o $(LD) -L$(LIBS_PATH) -T$(LIBS_PATH)/VCld.script $(SPECIAL_CRT0) ${ARM_ELF_LDFLAGS} $< $(LIBS) -o $@ %.hp : %.exe $(ELF2HP) $(ELF2HPFLAGS) $< $@