]> Shamusworld >> Repos - virtualjaguar/blob - musashi.mak
Small fix to allow app.cpp to compile on win32.
[virtualjaguar] / musashi.mak
1 #
2 # Makefile for Musashi Portable 68000 Emulator
3 #
4 # by James L. Hammons
5 #
6 # This software is licensed under the GPL v3 or any later version. See the
7 # file GPL.TXT for details. ;-)
8 #
9
10 CC         := gcc
11 LD         := gcc
12 AR         := ar
13 ARFLAGS    := -rs
14
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
17
18 OBJS := \
19         obj/m68kcpu.o  \
20         obj/m68kops.o  \
21         obj/m68kopac.o \
22         obj/m68kopdm.o \
23         obj/m68kopnz.o \
24         obj/m68kdasm.o
25
26 TARGET     := $(OBJS)
27
28 # Targets for convenience sake, not "real" targets
29 .PHONY: clean
30
31 all: obj $(TARGET) obj/libmusashi.a
32         @echo "Done!"
33
34 obj:
35         @mkdir obj
36
37 # Library rules (might not be cross-platform compatible)
38 obj/libmusashi.a: $(OBJS) 
39         @$(AR) $(ARFLAGS) obj/libmusashi.a $(OBJS)
40
41 # Main source compilation (implicit rules)...
42
43 obj/%.o: src/%.c
44         @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
45         @$(CC) $(CFLAGS) $(INCS) -c $< -o $@
46
47 #
48 # Musashi specific stuffola
49 #
50
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
54
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
58
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
62
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 $@
66
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
69
70 -include obj/*.d