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