]> Shamusworld >> Repos - virtualjaguar/blob - src/m68000/Makefile
035538ced287dc17ee7c1bd9d5fd766402da52fa
[virtualjaguar] / src / m68000 / Makefile
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
13 CC      := $(CROSS)gcc
14 LD      := $(CROSS)gcc
15 AR      := $(CROSS)ar
16 ARFLAGS := -rs
17 GCC_DEPS = -MMD
18 INCS    := -I. -I./obj `$(CROSS)sdl-config --cflags`
19
20 OBJS = \
21         obj/cpustbl.o \
22         obj/cpudefs.o \
23         obj/cpuemu.o \
24         obj/cpuextra.o \
25         obj/readcpu.o \
26         obj/m68kinterface.o \
27         obj/m68kdasm.o
28
29 # Targets for convenience sake, not "real" targets
30 .PHONY: clean
31
32 all: obj obj/libm68k.a
33         @echo "Done!"
34
35 # Library rules (might not be cross-platform compatible)
36 obj/libm68k.a: $(OBJS)
37         @$(AR) $(ARFLAGS) obj/libm68k.a $(OBJS)
38
39 obj:
40         @mkdir ./obj
41
42 # Main source compilation (implicit rules)...
43
44 obj/%.o: %.c
45         @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
46         @$(CC) $(GCC_DEPS) $(CFLAGS) $(INCS) -c $< -o $@
47
48 obj/%.o: obj/%.c
49         @echo -e "\033[01;33m***\033[00;32m Compiling $<...\033[00m"
50         @$(CC) $(GCC_DEPS) $(CFLAGS) $(INCS) -c $< -o $@
51
52 # Generated code
53
54 obj/cpuemu.c: obj/gencpu
55 obj/cpustbl.c: obj/gencpu
56         @echo -e "\033[01;33m***\033[00;32m Generating cpuemu.c...\033[00m"
57         @cd obj && ./gencpu
58
59 obj/gencpu: obj/cpudefs.c
60         @echo -e "\033[01;33m***\033[00;32m Generating gencpu...\033[00m"
61         @gcc $(GCC_DEPS) $(CFLAGS) gencpu.c readcpu.c obj/cpudefs.c -o obj/gencpu -I. -I./obj
62
63 obj/cpudefs.c: obj/build68k
64         @echo -e "\033[01;33m***\033[00;32m Generating cpudefs.c...\033[00m"
65         @obj/build68k < table68k > obj/cpudefs.c
66
67 obj/build68k: build68k.c
68         @echo -e "\033[01;33m***\033[00;32m Compiling build68k.c...\033[00m"
69         @gcc $(GCC_DEPS) $(CFLAGS) build68k.c -o obj/build68k
70
71 clean:
72         @echo -ne "\033[01;33m***\033[00;32m Cleaning out the garbage...\033[00m"
73         @-rm -rf ./obj
74         @echo "done!"
75
76 # Pull in dependencies autogenerated by gcc's -MMD switch
77 # The "-" in front is there just in case they haven't been created yet
78
79 -include obj/*.d