ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/MacOSX/Makefile.in
Revision: 1.27
Committed: 2007-06-15T22:54:23Z (17 years, 5 months ago) by gbeauche
Branch: MAIN
Changes since 1.26: +8 -2 lines
Log Message:
Fix REAL_ADDRESSING mode on MacOS X, aka move Mach defines to config_macosx.h
and fix lowmem (BLESS) to handle other-endian binaries.

File Contents

# User Rev Content
1 gbeauche 1.23 # Unix makefile for Basilisk II
2 nigel 1.1
3     ## System specific configuration
4     SHELL = /bin/sh
5    
6 gbeauche 1.26 HOST_CC = @CC@
7     HOST_CXX = @CXX@
8     CC_PROG = @CC@
9     CXX_PROG = @CXX@
10 gbeauche 1.23 CFLAGS = @CFLAGS@ -g
11     CXXFLAGS = @CXXFLAGS@ -g
12 gbeauche 1.25 CPPFLAGS = @CPPFLAGS@ -I../include -I. -I../uae_cpu
13     DEFS = @DEFS@ @DEFINES@ -D_REENTRANT -DAQUA -DFPU_IEEE
14 nigel 1.1 LDFLAGS = @LDFLAGS@
15     LIBS = @LIBS@
16 gbeauche 1.24 MONSRCS = @MONSRCS@
17 gbeauche 1.23 LN_S = ln -s
18    
19 gbeauche 1.26 ## Compilers selection (XXX hackery for 10.2 cross-compilation...)
20     SDK_VERSION.ppc = @PPC_SDK_VERSION@
21     SDK_VERSION = $(SDK_VERSION.$(ARCH))
22     ifeq ($(SDK_VERSION), 10.2.8)
23     CC_PROG = gcc-3.3
24     CXX_PROG = g++-3.3
25     SDK_ROOT = /Developer/SDKs/MacOSX10.2.8.sdk
26     CC_ROOT = -F$(SDK_ROOT)/System/Library/Frameworks
27     LDFLAGS += -Wl,-syslibroot,$(SDK_ROOT)
28     endif
29     ifeq ($(SDK_VERSION), 10.3.9)
30     CC_ROOT = -isysroot /Developer/SDKs/MacOSX10.3.9.sdk -mmacosx-version-min=10.3
31     endif
32     ifeq ($(SDK_VERSION), 10.4)
33     CC_ROOT = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4
34     endif
35     CC = $(CC_PROG) $(CC_ROOT) -arch $(ARCH)
36     CXX = $(CXX_PROG) $(CC_ROOT) -arch $(ARCH)
37    
38 gbeauche 1.24 ## slirp network emulation code
39     WANT_SLIRP = @WANT_SLIRP@
40     ifeq ($(WANT_SLIRP), yes)
41     CPPFLAGS += -I../slirp
42 gbeauche 1.23 SLIRP_CFLAGS = @SLIRP_CFLAGS@
43 nigel 1.17 SLIRP_SRCS = @SLIRP_SRCS@
44 gbeauche 1.23 SLIRP_OBJS = $(SLIRP_SRCS:../slirp/%.c=obj/%.o)
45 gbeauche 1.24 endif
46    
47     ## CPU emulation code
48     WANT_JIT = @WANT_JIT@
49     WANT_JIT_DEBUG = @WANT_JIT_DEBUG@
50 gbeauche 1.25 USE_JIT = no
51     CPUSRCS = \
52     ../uae_cpu/basilisk_glue.cpp ../uae_cpu/readcpu.cpp \
53     ../uae_cpu/memory.cpp ../uae_cpu/newcpu.cpp ../uae_cpu/fpu/fpu_ieee.cpp
54     GEN_CPUSRCS = \
55     cpustbl.cpp cpudefs.cpp \
56     cpuemu1.cpp cpuemu2.cpp cpuemu3.cpp cpuemu4.cpp \
57     cpuemu5.cpp cpuemu6.cpp cpuemu7.cpp cpuemu8.cpp
58     ifeq ($(ARCH), i386)
59 gbeauche 1.24 USE_JIT = $(WANT_JIT)
60 gbeauche 1.25 DEFS += -DUNALIGNED_PROFITABLE -DREGPARAM="__attribute__((regparm(3)))"
61     DEFS += -DX86_ASSEMBLY -DOPTIMIZED_FLAGS -DSAHF_SETO_PROFITABLE
62     endif
63     ifeq ($(ARCH), x86_64)
64     USE_JIT = $(WANT_JIT)
65     DEFS += -DUNALIGNED_PROFITABLE
66     DEFS += -DX86_64_ASSEMBLY -DOPTIMIZED_FLAGS
67     endif
68 gbeauche 1.24 ifeq ($(USE_JIT), yes)
69     DEFS += -DUSE_JIT -DUSE_JIT_FPU
70     ifeq ($(WANT_JIT_DEBUG), yes)
71     DEFS += -DJIT_DEBUG
72     endif
73     CPUSRCS += \
74 gbeauche 1.25 ../uae_cpu/compiler/compemu_support.cpp \
75     ../uae_cpu/compiler/compemu_fpp.cpp
76     GEN_CPUSRCS += \
77 gbeauche 1.24 cpuemu1_nf.cpp cpuemu2_nf.cpp cpuemu3_nf.cpp cpuemu4_nf.cpp \
78     cpuemu5_nf.cpp cpuemu6_nf.cpp cpuemu7_nf.cpp cpuemu8_nf.cpp \
79     compemu1.cpp compemu2.cpp compemu3.cpp compemu4.cpp \
80     compemu5.cpp compemu6.cpp compemu7.cpp compemu8.cpp \
81 gbeauche 1.25 cpustbl_nf.cpp compstbl.cpp
82     endif
83    
84     GEN_DIR = gen
85     ifneq ($(ARCH),)
86     GEN_DIR = gen.$(ARCH)
87 gbeauche 1.24 endif
88 gbeauche 1.25 CPUSRCS += $(foreach file, $(GEN_CPUSRCS), $(GEN_DIR)/$(file))
89     CPPFLAGS += -I$(GEN_DIR)
90 nigel 1.1
91     ## Files
92 gbeauche 1.23 UNIXSRCS = vm_alloc.cpp vm_alloc.h sigsegv.cpp sigsegv.h video_vosf.h video_blit.cpp \
93     xpram_unix.cpp user_strings_unix.cpp user_strings_unix.h \
94     serial_unix.cpp ether_unix.cpp sys_unix.cpp timer_unix.cpp \
95     sshpty.c sshpty.h strlcpy.c strlcpy.h semaphore.h
96     SRCS = ../main.cpp main_macosx.mm ../prefs.cpp ../prefs_items.cpp prefs_macosx.mm \
97     sys_unix.cpp sys_darwin.cpp ../rom_patches.cpp ../slot_rom.cpp ../rsrc_patches.cpp \
98     ../emul_op.cpp ../macos_util.cpp ../xpram.cpp xpram_unix.cpp ../timer.cpp \
99     timer_unix.cpp ../adb.cpp ../serial.cpp serial_unix.cpp ../ether.cpp ether_unix.cpp \
100     ../sony.cpp ../disk.cpp ../cdrom.cpp ../scsi.cpp ../video.cpp video_macosx.mm \
101     vm_alloc.cpp sigsegv.cpp ../audio.cpp ../extfs.cpp extfs_macosx.mm \
102     ../user_strings.cpp user_strings_unix.cpp clip_macosx.cpp misc_macosx.mm \
103     ../dummy/scsi_dummy.cpp \
104     audio_macosx.cpp AudioBackEnd.cpp AudioDevice.cpp MacOSX_sound_if.cpp \
105     NNThread.m Emulator.mm EmulatorView.mm Controller.mm PrefsEditor.mm \
106     sshpty.c strlcpy.c \
107 gbeauche 1.24 $(MONSRCS) $(CPUSRCS) $(SLIRP_SRCS)
108 gbeauche 1.25
109     ## Documentation files
110     DOCS = README.txt Credits.html ToDo.html HowTo.html Versions.html
111    
112     ## Binaries to build
113 gbeauche 1.23 APP = BasiliskII
114     APP_APP = $(APP).app
115 gbeauche 1.25 TARGET_ARCHES = @TARGET_ARCHES@
116     PROGS = $(foreach arch, $(TARGET_ARCHES), $(APP).$(arch))
117 nigel 1.17
118 gbeauche 1.27 BLESS = $(OBJ_DIR)/lowmem
119    
120 nigel 1.1 ## Rules
121 gbeauche 1.23 .PHONY: modules install installdirs uninstall mostlyclean clean distclean depend dep
122 nigel 1.1 .SUFFIXES:
123     .SUFFIXES: .c .cpp .s .o .h
124    
125 gbeauche 1.25 all: $(APP)_app
126 nigel 1.1
127 gbeauche 1.23 README.txt: ../../README
128     $(LN_S) $< $@
129     $(UNIXSRCS): %: ../Unix/%
130     $(LN_S) $< $@
131 nigel 1.1
132 gbeauche 1.23 OBJ_DIR = obj
133 gbeauche 1.25 ifneq ($(ARCH),)
134     OBJ_DIR = obj.$(ARCH)
135     endif
136 nigel 1.1 $(OBJ_DIR)::
137     @[ -d $(OBJ_DIR) ] || mkdir $(OBJ_DIR) > /dev/null 2>&1
138    
139 gbeauche 1.23 define SRCS_LIST_TO_OBJS
140     $(addprefix $(OBJ_DIR)/, $(addsuffix .o, $(foreach file, $(SRCS), \
141     $(basename $(notdir $(file))))))
142     endef
143     OBJS = $(SRCS_LIST_TO_OBJS)
144    
145     SRC_PATHS += $(sort $(foreach file, $(SRCS), $(dir $(file))))
146     VPATH :=
147     VPATH += $(addprefix :, $(subst ,:, $(filter-out $($(subst, :, ,$(VPATH))), $(SRC_PATHS))))
148    
149 gbeauche 1.25 define PROGS_template
150     $(APP).$(1): links
151     +$(MAKE) $(OBJ_DIR).$(1)/$(APP) ARCH=$(1)
152     $(LN_S) -f $(OBJ_DIR).$(1)/$(APP) $(APP).$(1)
153     endef
154    
155     $(APP): $(PROGS)
156     lipo $(foreach arch, $(TARGET_ARCHES), -arch $(arch) $(APP).$(arch)) \
157     -create -output $@
158    
159     $(foreach arch,$(TARGET_ARCHES),$(eval $(call PROGS_template,$(arch))))
160    
161     links: $(UNIXSRCS)
162    
163 gbeauche 1.27 $(BLESS): $(OBJ_DIR) $(OBJ_DIR)/lowmem.o
164     $(HOST_CC) -o $@ $(OBJ_DIR)/lowmem.o
165     $(OBJ_DIR)/lowmem.o: ../Unix/Darwin/lowmem.c
166     $(HOST_CC) -o $@ -c $<
167    
168     $(OBJ_DIR)/$(APP): $(OBJ_DIR) $(GEN_DIR) $(OBJS) $(BLESS)
169 gbeauche 1.23 $(CXX) -o $@ $(LDFLAGS) $(OBJS) $(LIBS)
170 gbeauche 1.25 $(BLESS) $@
171 gbeauche 1.23
172 gbeauche 1.25 $(APP)_app: $(APP) $(DOCS) Info.plist $(APP).icns
173 gbeauche 1.23 mkdir -p $(APP_APP)/Contents
174     cp -f ../MacOSX/Info.plist $(APP_APP)/Contents/
175     echo -n 'APPL????' > $(APP_APP)/Contents/PkgInfo
176     mkdir -p $(APP_APP)/Contents/MacOS
177     cp -f $(APP) $(APP_APP)/Contents/MacOS/
178     strip $(APP_APP)/Contents/MacOS/$(APP)
179     mkdir -p $(APP_APP)/Contents/Resources
180     cp -Rp English.lproj $(APP_APP)/Contents/Resources/
181 gbeauche 1.25 cp -f $(APP).icns $(APP_APP)/Contents/Resources/
182 gbeauche 1.23 cp -f $(DOCS) $(APP_APP)/Contents/Resources/
183     find $(APP_APP) -type d -name CVS | xargs rm -rf
184 nigel 1.1
185     mostlyclean:
186 gbeauche 1.23 rm -rf $(APP_APP)
187 gbeauche 1.25 rm -f $(PROGS) $(OBJ_DIR)/* $(OBJ_DIR).*/* core* *.core *~ *.bak
188 nigel 1.1
189     clean: mostlyclean
190 gbeauche 1.23 rm -f $(UNIXSRCS)
191 gbeauche 1.25 rm -f $(GEN_DIR).*/*
192 nigel 1.1
193     distclean: clean
194 nigel 1.12 rm -rf $(OBJ_DIR)
195     rm -rf autom4te.cache
196     rm -f Makefile
197 gbeauche 1.23 rm -f config.cache config.log config.status config.h
198 nigel 1.12 rm -f Darwin/lowmem Darwin/pagezero
199 nigel 1.1
200 gbeauche 1.23 depend dep:
201     makedepend $(CPPFLAGS) -Y. $(SRCS) 2>/dev/null
202 nigel 1.1
203 gbeauche 1.23 $(OBJ_DIR)/%.o : ../slirp/%.c
204     $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(SLIRP_CFLAGS) -c $< -o $@
205     $(OBJ_DIR)/%.o : %.c
206     $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@
207     $(OBJ_DIR)/%.o : %.cpp
208     $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@
209     $(OBJ_DIR)/%.o : %.m
210     $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@
211     $(OBJ_DIR)/%.o : %.mm
212     $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@
213     $(OBJ_DIR)/%.o : %.s
214     $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@
215 gbeauche 1.25 $(OBJ_DIR)/%.ho : %.c
216     $(HOST_CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@
217     $(OBJ_DIR)/%.ho : %.cpp
218     $(HOST_CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@
219    
220     $(OBJ_DIR)/build68k: $(OBJ_DIR)/build68k.ho
221 gbeauche 1.26 $(HOST_CC) -o $@ $(OBJ_DIR)/build68k.ho
222 gbeauche 1.25 $(OBJ_DIR)/gencpu: $(OBJ_DIR)/gencpu.ho $(OBJ_DIR)/readcpu.ho $(OBJ_DIR)/cpudefs.ho
223 gbeauche 1.26 $(HOST_CXX) -o $@ $(OBJ_DIR)/gencpu.ho $(OBJ_DIR)/readcpu.ho $(OBJ_DIR)/cpudefs.ho
224 gbeauche 1.25 $(OBJ_DIR)/gencomp: $(OBJ_DIR)/gencomp.ho $(OBJ_DIR)/readcpu.ho $(OBJ_DIR)/cpudefs.ho
225 gbeauche 1.26 $(HOST_CXX) -o $@ $(OBJ_DIR)/gencomp.ho $(OBJ_DIR)/readcpu.ho $(OBJ_DIR)/cpudefs.ho
226 gbeauche 1.25
227     $(GEN_DIR)::
228     @[ -d $(GEN_DIR) ] || mkdir $(GEN_DIR) > /dev/null 2>&1
229    
230     $(GEN_DIR)/cpudefs.cpp: $(OBJ_DIR)/build68k ../uae_cpu/table68k
231     $(OBJ_DIR)/build68k <../uae_cpu/table68k > $@
232     $(GEN_DIR)/cpustbl.cpp: $(GEN_DIR)/cpuemu.cpp
233     $(GEN_DIR)/cpustbl_nf.cpp: $(GEN_DIR)/cpustbl.cpp
234     $(GEN_DIR)/compstbl.cpp: $(GEN_DIR)/compemu.cpp
235     $(GEN_DIR)/cputbl.h: $(GEN_DIR)/cpuemu.cpp
236     $(GEN_DIR)/comptbl.h: $(GEN_DIR)/compemu.cpp
237 nigel 1.1
238 gbeauche 1.25 $(GEN_DIR)/cpuemu.cpp: $(OBJ_DIR)/gencpu
239     cd $(GEN_DIR) && ../$(OBJ_DIR)/gencpu
240 nigel 1.1
241 gbeauche 1.25 $(GEN_DIR)/compemu.cpp: $(OBJ_DIR)/gencomp
242     cd $(GEN_DIR) && ../$(OBJ_DIR)/gencomp
243 nigel 1.1
244 gbeauche 1.25 $(OBJ_DIR)/cpustbl_nf.o: $(GEN_DIR)/cpustbl.cpp
245 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -DNOFLAGS -c $< -o $@
246 nigel 1.7
247 gbeauche 1.25 $(OBJ_DIR)/compemu_support.o: compemu_support.cpp $(GEN_DIR)/comptbl.h
248 nigel 1.19 $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@
249    
250 gbeauche 1.25 $(OBJ_DIR)/cpuemu1.o: $(GEN_DIR)/cpuemu.cpp
251 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_1 $(CXXFLAGS) -c $< -o $@
252 gbeauche 1.25 $(OBJ_DIR)/cpuemu2.o: $(GEN_DIR)/cpuemu.cpp
253 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_2 $(CXXFLAGS) -c $< -o $@
254 gbeauche 1.25 $(OBJ_DIR)/cpuemu3.o: $(GEN_DIR)/cpuemu.cpp
255 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_3 $(CXXFLAGS) -c $< -o $@
256 gbeauche 1.25 $(OBJ_DIR)/cpuemu4.o: $(GEN_DIR)/cpuemu.cpp
257 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_4 $(CXXFLAGS) -c $< -o $@
258 gbeauche 1.25 $(OBJ_DIR)/cpuemu5.o: $(GEN_DIR)/cpuemu.cpp
259 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_5 $(CXXFLAGS) -c $< -o $@
260 gbeauche 1.25 $(OBJ_DIR)/cpuemu6.o: $(GEN_DIR)/cpuemu.cpp
261 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_6 $(CXXFLAGS) -c $< -o $@
262 gbeauche 1.25 $(OBJ_DIR)/cpuemu7.o: $(GEN_DIR)/cpuemu.cpp
263 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_7 $(CXXFLAGS) -c $< -o $@
264 gbeauche 1.25 $(OBJ_DIR)/cpuemu8.o: $(GEN_DIR)/cpuemu.cpp
265 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_8 $(CXXFLAGS) -c $< -o $@
266    
267 gbeauche 1.25 $(OBJ_DIR)/cpuemu1_nf.o: $(GEN_DIR)/cpuemu.cpp
268 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_1 -DNOFLAGS $(CXXFLAGS) -c $< -o $@
269 gbeauche 1.25 $(OBJ_DIR)/cpuemu2_nf.o: $(GEN_DIR)/cpuemu.cpp
270 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_2 -DNOFLAGS $(CXXFLAGS) -c $< -o $@
271 gbeauche 1.25 $(OBJ_DIR)/cpuemu3_nf.o: $(GEN_DIR)/cpuemu.cpp
272 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_3 -DNOFLAGS $(CXXFLAGS) -c $< -o $@
273 gbeauche 1.25 $(OBJ_DIR)/cpuemu4_nf.o: $(GEN_DIR)/cpuemu.cpp
274 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_4 -DNOFLAGS $(CXXFLAGS) -c $< -o $@
275 gbeauche 1.25 $(OBJ_DIR)/cpuemu5_nf.o: $(GEN_DIR)/cpuemu.cpp
276 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_5 -DNOFLAGS $(CXXFLAGS) -c $< -o $@
277 gbeauche 1.25 $(OBJ_DIR)/cpuemu6_nf.o: $(GEN_DIR)/cpuemu.cpp
278 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_6 -DNOFLAGS $(CXXFLAGS) -c $< -o $@
279 gbeauche 1.25 $(OBJ_DIR)/cpuemu7_nf.o: $(GEN_DIR)/cpuemu.cpp
280 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_7 -DNOFLAGS $(CXXFLAGS) -c $< -o $@
281 gbeauche 1.25 $(OBJ_DIR)/cpuemu8_nf.o: $(GEN_DIR)/cpuemu.cpp
282 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_8 -DNOFLAGS $(CXXFLAGS) -c $< -o $@
283    
284 gbeauche 1.25 $(OBJ_DIR)/compemu1.o: $(GEN_DIR)/compemu.cpp
285 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_1 $(CXXFLAGS) -c $< -o $@
286 gbeauche 1.25 $(OBJ_DIR)/compemu2.o: $(GEN_DIR)/compemu.cpp
287 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_2 $(CXXFLAGS) -c $< -o $@
288 gbeauche 1.25 $(OBJ_DIR)/compemu3.o: $(GEN_DIR)/compemu.cpp
289 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_3 $(CXXFLAGS) -c $< -o $@
290 gbeauche 1.25 $(OBJ_DIR)/compemu4.o: $(GEN_DIR)/compemu.cpp
291 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_4 $(CXXFLAGS) -c $< -o $@
292 gbeauche 1.25 $(OBJ_DIR)/compemu5.o: $(GEN_DIR)/compemu.cpp
293 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_5 $(CXXFLAGS) -c $< -o $@
294 gbeauche 1.25 $(OBJ_DIR)/compemu6.o: $(GEN_DIR)/compemu.cpp
295 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_6 $(CXXFLAGS) -c $< -o $@
296 gbeauche 1.25 $(OBJ_DIR)/compemu7.o: $(GEN_DIR)/compemu.cpp
297 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_7 $(CXXFLAGS) -c $< -o $@
298 gbeauche 1.25 $(OBJ_DIR)/compemu8.o: $(GEN_DIR)/compemu.cpp
299 gbeauche 1.23 $(CXX) $(CPPFLAGS) $(DEFS) -DPART_8 $(CXXFLAGS) -c $< -o $@
300 nigel 1.17
301 nigel 1.1 #-------------------------------------------------------------------------
302     # DO NOT DELETE THIS LINE -- make depend depends on it.