1# 2# Makefile for modified UAE 68000 CPU core 3# 4# by James Hammons 5# (C) 2011 Underground Software 6# 7# This makefile is released under the GPLv3 or later 8# 9 10# Cross compilation using MXE 11#CROSS = i686-pc-mingw32- 12 13CC := $(CROSS)gcc 14LD := $(CROSS)gcc 15AR := $(CROSS)ar 16HOSTCC := gcc 17 18ARFLAGS := -rs 19GCC_DEPS = -MMD 20INCS := -I. -I./obj `$(CROSS)sdl-config --cflags` 21 22OBJS = \ 23 obj/cpustbl.o \ 24 obj/cpudefs.o \ 25 obj/cpuemu.o \ 26 obj/cpuextra.o \ 27 obj/readcpu.o \ 28 obj/m68kinterface.o \ 29 obj/m68kdasm.o 30 31# Targets for convenience sake, not "real" targets 32.PHONY: clean 33 34all: obj obj/libm68k.a 35 @echo "Done!" 36 37# Library rules (might not be cross-platform compatible) 38obj/libm68k.a: $(OBJS) 39 @$(AR) $(ARFLAGS) obj/libm68k.a $(OBJS) 40 41obj: 42 @mkdir ./obj 43 44# Main source compilation (implicit rules)... 45 46obj/%.o: %.c 47 @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m" 48 @$(CC) $(GCC_DEPS) $(CFLAGS) $(INCS) -c $< -o $@ 49 50obj/%.o: obj/%.c 51 @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m" 52 @$(CC) $(GCC_DEPS) $(CFLAGS) $(INCS) -c $< -o $@ 53 54# Generated code 55 56obj/cpuemu.c: obj/gencpu 57obj/cpustbl.c: obj/gencpu 58 @echo -e "\033[01;33m***\033[00;32m Generating cpuemu.c...\033[00m" 59 @cd obj && ./gencpu 60 61obj/gencpu: obj/cpudefs.c 62 @echo -e "\033[01;33m***\033[00;32m Generating gencpu...\033[00m" 63 @$(HOSTCC) $(GCC_DEPS) $(CFLAGS) gencpu.c readcpu.c obj/cpudefs.c -o obj/gencpu -I. -I./obj 64 65obj/cpudefs.c: obj/build68k 66 @echo -e "\033[01;33m***\033[00;32m Generating cpudefs.c...\033[00m" 67 @obj/build68k < table68k > obj/cpudefs.c 68 69obj/build68k: build68k.c 70 @echo -e "\033[01;33m***\033[00;32m Compiling build68k.c...\033[00m" 71 @$(HOSTCC) $(GCC_DEPS) $(CFLAGS) build68k.c -o obj/build68k 72 73clean: 74 @echo -ne "\033[01;33m***\033[00;32m Cleaning out the garbage...\033[00m" 75 @-rm -rf ./obj 76 @echo "done!" 77 78# Pull in dependencies autogenerated by gcc's -MMD switch 79# The "-" in front is there just in case they haven't been created yet 80 81-include obj/*.d 82