1 |
# MacOS X makefile for Basilisk II. Slightly based on the Unix one |
2 |
|
3 |
## System specific configuration |
4 |
@SET_MAKE@ |
5 |
SHELL = /bin/sh |
6 |
|
7 |
|
8 |
CC = @CC@ |
9 |
CXX = @CXX@ |
10 |
CFLAGS = @CFLAGS@ |
11 |
CXXFLAGS = @CXXFLAGS@ |
12 |
CPPFLAGS = @CPPFLAGS@ -I../include -I. @CPUINCLUDES@ |
13 |
DEFS = @DEFS@ @DEFINES@ -D_REENTRANT |
14 |
LDFLAGS = @LDFLAGS@ |
15 |
LIBS = @LIBS@ |
16 |
|
17 |
## Files |
18 |
OBJ_DIR = build |
19 |
GENSRCS = cpudefs.cpp cpuemu.cpp cpustbl.cpp cputbl.h |
20 |
|
21 |
# Wrappers which split the very large cpuemu.cpp into smaller compile units |
22 |
GENEMUS = cpuemu1.cpp cpuemu2.cpp cpuemu3.cpp cpuemu4.cpp \ |
23 |
cpuemu5.cpp cpuemu6.cpp cpuemu7.cpp cpuemu8.cpp |
24 |
|
25 |
# Symlinks to files in other directories |
26 |
GENLINK = README.txt install-sh \ |
27 |
config.guess config.sub \ |
28 |
sys_unix.cpp timer_unix.cpp user_strings_unix.h |
29 |
|
30 |
GEN = $(GENEMUS) $(GENSRCS) |
31 |
|
32 |
SRCS = BasiliskII.icns Controller.h Controller.mm Credits.html \ |
33 |
Emulator.h Emulator.mm EmulatorView.h EmulatorView.mm English.lproj \ |
34 |
NNThread.h NNThread.m PrefsEditor.h PrefsEditor.mm \ |
35 |
ToDo.html Versions.html \ |
36 |
audio_macosx.mm extfs_macosx.mm macos_util_macosx.h main_macosx.h \ |
37 |
main_macosx.mm misc_macosx.h misc_macosx.mm prefs_macosx.cpp \ |
38 |
sysdeps.h video_macosx.mm video_macosx.h |
39 |
APP = $(OBJ_DIR)/BasiliskII.app |
40 |
|
41 |
## Rules |
42 |
|
43 |
.PHONY: mostlyclean clean distclean depend dep |
44 |
.SUFFIXES: |
45 |
.SUFFIXES: .c .cpp .s .o .h |
46 |
|
47 |
all: $(APP) |
48 |
|
49 |
ide: $(OBJ_DIR) $(GEN) $(SRCS) |
50 |
open BasiliskII.pbproj |
51 |
|
52 |
test: $(APP) |
53 |
open $(APP) |
54 |
|
55 |
$(OBJ_DIR):: |
56 |
@[ -d $(OBJ_DIR) ] || mkdir $(OBJ_DIR) > /dev/null 2>&1 |
57 |
|
58 |
|
59 |
$(APP): $(OBJ_DIR) $(GEN) $(SRCS) |
60 |
pbxbuild -buildstyle Deployment || rm -fr $(APP) |
61 |
# pbxbuild || rm -fr $(APP) |
62 |
|
63 |
BasiliskII.icns : |
64 |
touch $@ |
65 |
|
66 |
mostlyclean: |
67 |
rm -fr English.lproj/*~* $(OBJ_DIR)/* core* *.core *~ *.bak |
68 |
|
69 |
clean: mostlyclean |
70 |
rm -f $(GEN) |
71 |
rm -f cpudefs.cpp cputmp*.s cpufast*.s cpustbl.cpp |
72 |
|
73 |
distclean: clean |
74 |
rm -fr $(OBJ_DIR) |
75 |
rm -fr $(GENLINK) |
76 |
rm -f config.cache config.log config.status config.h config.h.in |
77 |
rm -f configure |
78 |
rm -f Makefile |
79 |
|
80 |
|
81 |
|
82 |
|
83 |
$(OBJ_DIR)/build68k: ../uae_cpu/build68k.c |
84 |
$(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(LDFLAGS) $< -o $@ |
85 |
|
86 |
$(OBJ_DIR)/cpuopti: ../uae_cpu/cpuopti.c |
87 |
$(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(LDFLAGS) $< -o $@ |
88 |
|
89 |
$(OBJ_DIR)/gencpu: cpudefs.cpp ../uae_cpu/gencpu.c ../uae_cpu/readcpu.cpp |
90 |
$(CXX) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ |
91 |
|
92 |
|
93 |
|
94 |
cpudefs.cpp: $(OBJ_DIR)/build68k ../uae_cpu/table68k |
95 |
$(OBJ_DIR)/build68k < ../uae_cpu/table68k > $@ |
96 |
|
97 |
cpuemu.cpp cpustbl.cpp cputbl.h: $(OBJ_DIR)/gencpu |
98 |
$< |
99 |
|
100 |
|
101 |
$(GENEMUS) : cpuemu.cpp |
102 |
for i in 1 2 3 4 5 6 7 8; \ |
103 |
do \ |
104 |
printf "#define PART_%d\n#include \"%s\"\n" $$i $< >cpuemu$$i.cpp; \ |
105 |
done |
106 |
|
107 |
|
108 |
cpufast.s: cpuemu.s $(OBJ_DIR)/cpuopti |
109 |
$(OBJ_DIR)/cpuopti <cpuemu.s >$@ || mv cputmp.s $@ |
110 |
|
111 |
cpuemu.s: cpuemu.cpp |
112 |
$(CXX) $(CPPFLAGS) $(DEFS) -S $(CXXFLAGS) $< -o $@ |
113 |
|
114 |
#------------------------------------------------------------------------- |
115 |
# DO NOT DELETE THIS LINE -- make depend depends on it. |