2 # Makefile for Musashi Portable 68000 Emulator
6 # This software is licensed under the GPL v3 or any later version. See the
7 # file GPL.TXT for details. ;-)
15 # Note that we use optimization level 2 instead of 3--3 doesn't seem to gain much over 2
16 CFLAGS := -MMD -O2 -ffast-math -fomit-frame-pointer
28 # Targets for convenience sake, not "real" targets
31 all: obj $(TARGET) obj/libmusashi.a
37 # Library rules (might not be cross-platform compatible)
38 obj/libmusashi.a: $(OBJS)
39 @$(AR) $(ARFLAGS) obj/libmusashi.a $(OBJS)
41 # Main source compilation (implicit rules)...
44 @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
45 @$(CC) $(CFLAGS) $(INCS) -c $< -o $@
48 # Musashi specific stuffola
51 obj/m68kmake: src/m68kmake.c src/m68k_in.c
52 @echo -e "\033[01;33m***\033[00;32m Preparing to make the Musashi core...\033[00m"
53 @$(CC) $(WARNINGS) src/m68kmake.c -o obj/m68kmake
55 obj/m68kops.h obj/m68kops.c obj/m68kopac.c obj/m68kopdm.c obj/m68kopnz.c: obj/m68kmake
56 @echo -e "\033[01;33m***\033[00;32m Creating m68kops.h...\033[00m"
57 @obj/m68kmake obj src/m68k_in.c
59 obj/m68kcpu.o: obj/m68kops.h src/m68k.h src/m68kconf.h
60 @echo -e "\033[01;33m***\033[00;32m Compiling m68kcpu.c...\033[00m"
61 @$(CC) $(CFLAGS) -Iobj -c src/m68kcpu.c -o obj/m68kcpu.o
63 obj/m68kop%.o: obj/m68kop%.c
64 @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
65 @$(CC) $(CFLAGS) -Isrc -c $< -o $@
67 # Pull in dependencies autogenerated by gcc's -MMD switch
68 # The "-" in front is there just in case they haven't been created yet