view Makefile.pandora @ 5130:f2c2f0ecba5f

Fixed bug #1111 kwm@rainbow-runner.nl 2011-01-30 06:28:27 PST Created attachment 562 [details] Build fix with clang. When building sdl 1.2.14 with the Clang compiler http://clang.llvm.org . The build fails in src/video/mmx.h with the following error: -------------------------------------------------- ./src/video/SDL_RLEaccel.c:831:5: error: invalid operand for instruction CHOOSE_BLIT(RLECLIPBLIT, alpha, fmt); ^ ./src/video/SDL_RLEaccel.c:831:17: note: instantiated from: CHOOSE_BLIT(RLECLIPBLIT, alpha, fmt); ^ ./src/video/SDL_RLEaccel.c:831:5: note: instantiated from: CHOOSE_BLIT(RLECLIPBLIT, alpha, fmt); ^ ./src/video/SDL_RLEaccel.c:647:23: note: instantiated from: blitter(2, Uint8, ALPHA_BLIT16_565MMX); \ ^ ./src/video/SDL_RLEaccel.c:282:4: note: instantiated from: movq_r2m(mm3, *dstp); \ ^ In file included from ./src/video/SDL_RLEaccel.c:99: ./src/video/mmx.h:379:28: note: instantiated from: #define movq_r2m(reg, var) mmx_r2m(movq, reg, var) ^ <scratch space>:192:1: note: instantiated from: "movq" ^ <inline asm>:1:2: note: instantiated into assembly here movq %mm3, %dx ^ -------------------------------------------------- According to the clang developers this is a invalid inline assembly. Using the attached patch from the last commit in the below bug report fixes the compile. More details from: http://llvm.org/bugs/show_bug.cgi?id=6730
author Sam Lantinga <slouken@libsdl.org>
date Sun, 30 Jan 2011 13:42:05 -0800
parents 11cedc036ca1
children
line wrap: on
line source

# Makefile to build the pandora SDL library

AR	= arm-none-linux-gnueabi-ar
RANLIB	= arm-none-linux-gnueabi-ranlib
CC = arm-none-linux-gnueabi-gcc
CXX = arm-none-linux-gnueabi-g++
STRIP = arm-none-linux-gnueabi-strip

CFLAGS  = -O3 -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfloat-abi=softfp \
	-mfpu=neon -ftree-vectorize -ffast-math -fomit-frame-pointer -fno-strict-aliasing -fsingle-precision-constant \
	-I./include -I$(PNDSDK)/usr/include -DSDL_REVISION=0

TARGET  = libSDL.a

SOURCES = ./src/*.c ./src/audio/*.c ./src/cpuinfo/*.c ./src/events/*.c \
	./src/file/*.c ./src/stdlib/*.c ./src/thread/*.c ./src/timer/*.c ./src/video/*.c \
	./src/joystick/*.c ./src/haptic/*.c ./src/power/*.c ./src/video/dummy/*.c ./src/audio/disk/*.c \
	./src/audio/dummy/*.c ./src/loadso/dlopen/*.c ./src/audio/dsp/*.c ./src/audio/dma/*.c \
	./src/thread/pthread/SDL_systhread.c ./src/thread/pthread/SDL_syssem.c \
	./src/thread/pthread/SDL_sysmutex.c ./src/thread/pthread/SDL_syscond.c \
	./src/joystick/linux/*.c ./src/haptic/linux/*.c ./src/timer/unix/*.c \
	./src/atomic/linux/*.c \
	./src/video/pandora/SDL_pandora.o ./src/video/pandora/SDL_pandora_events.o ./src/video/x11/*.c 
	

OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g')

CONFIG_H = $(shell cp include/SDL_config_pandora.h include/SDL_config.h && touch include/SDL_revision.h)

all: $(TARGET)

$(TARGET): $(CONFIG_H) $(OBJECTS)
	$(AR) crv $@ $^
	$(RANLIB) $@

clean:
	rm -f $(TARGET) $(OBJECTS)