HAVE_NEON = $(shell $(CC_) -E -dD $(CFLAGS) gpu.h | grep -q '__ARM_NEON__ 1' && echo 1)
-TARGETS = gpu_peops.$(EXT) gpu_unai.$(EXT)
+TARGETS = gpu_neon.$(EXT) gpu_peops.$(EXT) gpu_unai.$(EXT)
+
+gpu_neon.$(EXT): SRC += psx_gpu_if.c
+gpu_neon.$(EXT): CFLAGS += -DTEXTURE_CACHE_4BPP -DTEXTURE_CACHE_8BPP
ifeq "$(HAVE_NEON)" "1"
-TARGETS += gpu_neon.$(EXT)
+gpu_neon.$(EXT): SRC += psx_gpu/psx_gpu_arm_neon.S
+gpu_neon.$(EXT): CFLAGS += -DNEON_BUILD
+else
+gpu_neon.$(EXT): CFLAGS += -fno-strict-aliasing
endif
-
-gpu_neon.$(EXT): SRC += psx_gpu_if.c psx_gpu/psx_gpu_arm_neon.S
-gpu_neon.$(EXT): CFLAGS += -DNEON_BUILD -DTEXTURE_CACHE_4BPP -DTEXTURE_CACHE_8BPP
gpu_peops.$(EXT): SRC += peops_if.c
gpu_peops.$(EXT): CFLAGS += -fno-strict-aliasing
-gpu_unai.$(EXT): SRC += unai_if.cpp ../gpu_unai/gpu_arm.s
+gpu_unai.$(EXT): SRC += unai_if.cpp
gpu_unai.$(EXT): CC_ = $(CXX)
+ifeq "$(ARCH)" "arm"
+gpu_unai.$(EXT): SRC += ../gpu_unai/gpu_arm.s
+endif
all: $(TARGETS)
CFLAGS += -m32
endif
-TARGETS = test_peops test_unai
-ifeq "$(HAVE_NEON)" "1"
-TARGETS += test_neon
-endif
+TARGETS = test_neon test_peops test_unai
SRC += test.c
all: $(TARGETS)
-test_neon: SRC += psx_gpu_if.c psx_gpu/psx_gpu_arm_neon.S
+test_neon: SRC += psx_gpu_if.c
test_neon: psx_gpu_if.c psx_gpu/*.c
-test_neon: CFLAGS += -DNEON_BUILD -DTEXTURE_CACHE_4BPP -DTEXTURE_CACHE_8BPP
+test_neon: CFLAGS += -DTEXTURE_CACHE_4BPP -DTEXTURE_CACHE_8BPP
+ifeq "$(HAVE_NEON)" "1"
+test_neon: SRC += psx_gpu/psx_gpu_arm_neon.S
+test_neon: CFLAGS += -DNEON_BUILD
+else
+test_neon: CFLAGS += -fno-strict-aliasing
+endif
test_peops: SRC += peops_if.c
test_peops: CFLAGS += -fno-strict-aliasing
-test_unai: SRC += unai_if.cpp ../gpu_unai/gpu_arm.s
+test_unai: SRC += unai_if.cpp
test_unai: CC_ = $(CXX)
+ifeq "$(ARCH)" "arm"
+test_unai: SRC += ../gpu_unai/gpu_arm.s
+endif
$(TARGETS): $(SRC)
$(CC_) -o $@ $(SRC) $(CFLAGS) $(LDFLAGS)