# This makefile is released under the GPLv3 or later
#
-CC := gcc
-LD := gcc
-AR := ar
-ARFLAGS := -rs
-
-# Note that we use optimization level 2 instead of 3--3 doesn't seem to gain much over 2
-CFLAGS := -MMD -O2 -ffast-math -fomit-frame-pointer
+# Cross compilation using MXE
+#CROSS = i686-pc-mingw32-
-INCS := -I./ -I./obj `sdl-config --cflags`
+CC := $(CROSS)gcc
+LD := $(CROSS)gcc
+AR := $(CROSS)ar
+ARFLAGS := -rs
+GCC_DEPS = -MMD
+INCS := -I. -I./obj `$(CROSS)sdl-config --cflags`
OBJS = \
obj/cpustbl.o \
obj/m68kinterface.o \
obj/m68kdasm.o
-# obj/newcpu.o \
-
# Targets for convenience sake, not "real" targets
.PHONY: clean
@echo "Done!"
# Library rules (might not be cross-platform compatible)
-obj/libm68k.a: $(OBJS)
+obj/libm68k.a: $(OBJS)
@$(AR) $(ARFLAGS) obj/libm68k.a $(OBJS)
obj:
obj/%.o: %.c
@echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
- @$(CC) $(CFLAGS) $(INCS) -c $< -o $@
+ @$(CC) $(GCC_DEPS) $(CFLAGS) $(INCS) -c $< -o $@
obj/%.o: obj/%.c
@echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
- @$(CC) $(CFLAGS) $(INCS) -c $< -o $@
+ @$(CC) $(GCC_DEPS) $(CFLAGS) $(INCS) -c $< -o $@
# Generated code
obj/gencpu: obj/cpudefs.c
@echo -e "\033[01;33m***\033[00;32m Generating gencpu...\033[00m"
- @$(CC) $(CFLAGS) gencpu.c readcpu.c obj/cpudefs.c -o obj/gencpu -I./ -I./obj
+ @gcc $(GCC_DEPS) $(CFLAGS) gencpu.c readcpu.c obj/cpudefs.c -o obj/gencpu -I. -I./obj
obj/cpudefs.c: obj/build68k
@echo -e "\033[01;33m***\033[00;32m Generating cpudefs.c...\033[00m"
obj/build68k: build68k.c
@echo -e "\033[01;33m***\033[00;32m Compiling build68k.c...\033[00m"
- @$(CC) $(CFLAGS) build68k.c -o obj/build68k
+ @gcc $(GCC_DEPS) $(CFLAGS) build68k.c -o obj/build68k
clean:
@echo -ne "\033[01;33m***\033[00;32m Cleaning out the garbage...\033[00m"
@-rm -rf ./obj
-# @-$(FIND) . -name "*~" -exec rm -f {} \;
@echo "done!"
# Pull in dependencies autogenerated by gcc's -MMD switch