2 # Makefile for Musashi Portable 68000 Emulator
6 # This software is licensed under the GPL v3 or any later version. See the
7 # file GPLv3 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
26 # Targets for convenience sake, not "real" targets
29 all: obj obj/libmusashi.a
35 # Library rules (might not be cross-platform compatible)
36 obj/libmusashi.a: $(OBJS)
37 @$(AR) $(ARFLAGS) obj/libmusashi.a $(OBJS)
39 # Main source compilation (implicit rules)...
42 @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
43 @$(CC) $(CFLAGS) $(INCS) -c $< -o $@
46 # Musashi specific stuffola
49 obj/m68kmake: src/m68kmake.c src/m68k_in.c
50 @echo -e "\033[01;33m***\033[00;32m Preparing to make the Musashi core...\033[00m"
51 @$(CC) $(WARNINGS) src/m68kmake.c -o obj/m68kmake
53 obj/m68kops.h obj/m68kops.c obj/m68kopac.c obj/m68kopdm.c obj/m68kopnz.c: obj/m68kmake
54 @echo -e "\033[01;33m***\033[00;32m Creating m68kops.h...\033[00m"
55 @obj/m68kmake obj src/m68k_in.c
57 obj/m68kcpu.o: obj/m68kops.h src/m68k.h src/m68kconf.h
58 @echo -e "\033[01;33m***\033[00;32m Compiling m68kcpu.c...\033[00m"
59 @$(CC) $(CFLAGS) -Iobj -c src/m68kcpu.c -o obj/m68kcpu.o
61 obj/m68kop%.o: obj/m68kop%.c
62 @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
63 @$(CC) $(CFLAGS) -Isrc -c $< -o $@
65 # Pull in dependencies autogenerated by gcc's -MMD switch
66 # The "-" in front is there just in case they haven't been created yet