ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/SheepShaver/src/Unix/Makefile.in
Revision: 1.46
Committed: 2009-03-03T08:07:22Z (15 years, 3 months ago) by asvitkine
Branch: MAIN
Changes since 1.45: +2 -0 lines
Log Message:
[patch by Mike Sliczniak]

Here is a patch to allow compiling of SS and B2 with an SDL Framework. You can
get this by downloading from:

http://www.libsdl.org/release/SDL-1.2.13.dmg

Here is how I tested on an intel 32-bit mac with Mac OS X 10.5.6:

SS ./autogen.sh --disable-standalone-gui --enable-vosf --enable-sdl-framework --enable-sdl-framework-prefix=/Users/mzs/Library/Frameworks --enable-sdl-video --disable-sdl-audio --enable-addressing=real
--without-esd --without-gtk --without-mon --without-x

SS /autogen.sh --disable-standalone-gui --enable-vosf --disable-sdl-framework --disable-sdl-video --disable-sdl-audio --enable-addressing=real --without-esd --without-gtk --without-mon --with-x

B2 ./autogen.sh --disable-standalone-gui --enable-vosf --enable-sdl-framework --enable-sdl-framework-prefix=/Users/mzs/Library/Frameworks --enable-sdl-video --enable-sdl-audio --enable-addressing=real --without-esd --without-gtk --without-mon --without-x --enable-jit-compiler

B2 ./autogen.sh --disable-standalone-gui --enable-vosf --disable-sdl-framework --disable-sdl-video --disable-sdl-audio --enable-addressing=real --with-esd --without-gtk --without-mon --with-x --enable-jit-compiler

(esound does not really work on mac, it needs some better coreaudio patches.)

configure.ac for SS has two little additional fixes so that the Cocoa prefs gui
does not get built if you are building for X11 and so that you can use esd, sdl,
or coreaudio for sound.

File Contents

# Content
1 # Linux makefile for SheepShaver
2
3 ## System specific configuration
4 @SET_MAKE@
5 SHELL = /bin/sh
6
7 prefix = @prefix@
8 exec_prefix = @exec_prefix@
9 bindir = @bindir@
10 datadir = @datadir@
11 mandir = @mandir@
12 man1dir = $(mandir)/man1
13
14 DESTDIR =
15
16 CC = @CC@
17 CXX = @CXX@
18 CFLAGS = @CFLAGS@
19 CXXFLAGS = @CXXFLAGS@
20 CPPFLAGS = @CPPFLAGS@ -I../include -I. -I../slirp
21 DEFS = @DEFS@ -D_REENTRANT -DDATADIR=\"$(datadir)/$(APP)\"
22 LDFLAGS = @LDFLAGS@
23 LIBS = @LIBS@
24 SYSSRCS = @SYSSRCS@
25 CPUSRCS = @CPUSRCS@
26 MONSRCS = @MONSRCS@
27 PERL = @PERL@
28 USE_DYNGEN = @USE_DYNGEN@
29 DYNGENSRCS = @DYNGENSRCS@
30 DYNGEN_CC = @DYNGEN_CC@
31 DYNGEN_CFLAGS = @DYNGEN_CFLAGS@
32 DYNGEN_CXXFLAGS = @DYNGEN_CXXFLAGS@
33 DYNGEN_OP_FLAGS = @DYNGEN_OP_FLAGS@
34 BLESS = @BLESS@
35 EXEEXT = @EXEEXT@
36 KEYCODES = @KEYCODES@
37 INSTALL = @INSTALL@
38 INSTALL_PROGRAM = @INSTALL_PROGRAM@ -s
39 INSTALL_DATA = @INSTALL_DATA@
40
41 SLIRP_CFLAGS = @SLIRP_CFLAGS@
42 SLIRP_SRCS = @SLIRP_SRCS@
43 SLIRP_OBJS = $(SLIRP_SRCS:../slirp/%.c=obj/%.o)
44
45 STANDALONE_GUI = @STANDALONE_GUI@
46 GUI_CFLAGS = @GUI_CFLAGS@
47 GUI_LIBS = @GUI_LIBS@
48 GUI_SRCS = ../prefs.cpp prefs_unix.cpp prefs_editor_gtk.cpp ../prefs_items.cpp \
49 ../user_strings.cpp user_strings_unix.cpp xpram_unix.cpp sys_unix.cpp rpc_unix.cpp
50
51 # Append disassembler to dyngen, if available
52 ifneq (:no,$(MONSRCS):$(USE_DYNGEN))
53 DYNGENSRCS += $(filter %i386-dis.c,$(MONSRCS))
54 endif
55
56 ## Files
57 SRCS = ../main.cpp main_unix.cpp ../prefs.cpp ../prefs_items.cpp prefs_unix.cpp sys_unix.cpp \
58 ../rom_patches.cpp ../rsrc_patches.cpp ../emul_op.cpp ../name_registry.cpp \
59 ../macos_util.cpp ../timer.cpp timer_unix.cpp ../xpram.cpp xpram_unix.cpp \
60 ../adb.cpp ../sony.cpp ../disk.cpp ../cdrom.cpp ../scsi.cpp \
61 ../gfxaccel.cpp ../video.cpp video_blit.cpp ../audio.cpp ../ether.cpp ../thunks.cpp \
62 ../serial.cpp ../extfs.cpp \
63 about_window_unix.cpp ../user_strings.cpp user_strings_unix.cpp \
64 vm_alloc.cpp sigsegv.cpp rpc_unix.cpp \
65 sshpty.c strlcpy.c $(SYSSRCS) $(CPUSRCS) $(MONSRCS) $(SLIRP_SRCS)
66 APP = SheepShaver
67 APP_EXE = $(APP)$(EXEEXT)
68 APP_APP = $(APP).app
69
70 PROGS = $(APP_EXE)
71 ifeq ($(STANDALONE_GUI),yes)
72 GUI_APP = SheepShaverGUI
73 GUI_APP_EXE = $(GUI_APP)$(EXEEXT)
74 GUI_APP_APP = $(GUI_APP).app
75 PROGS += $(GUI_APP_EXE)
76 else
77 CXXFLAGS += $(GUI_CFLAGS)
78 LIBS += $(GUI_LIBS)
79 endif
80
81 ## Rules
82 .PHONY: modules install uninstall clean distclean depend dep
83 .SUFFIXES:
84 .SUFFIXES: .c .cpp .S .o .h
85
86 all: $(PROGS)
87
88 OBJ_DIR = obj
89 $(OBJ_DIR)::
90 @[ -d $(OBJ_DIR) ] || mkdir $(OBJ_DIR) > /dev/null 2>&1
91
92 define SRCS_LIST_TO_OBJS
93 $(addprefix $(OBJ_DIR)/, $(addsuffix .o, $(foreach file, $(SRCS), \
94 $(basename $(notdir $(file))))))
95 endef
96 OBJS = $(SRCS_LIST_TO_OBJS)
97
98 define GUI_SRCS_LIST_TO_OBJS
99 $(addprefix $(OBJ_DIR)/, $(addsuffix .go, $(foreach file, $(GUI_SRCS), \
100 $(basename $(notdir $(file))))))
101 endef
102 GUI_OBJS = $(GUI_SRCS_LIST_TO_OBJS)
103
104 define DYNGENSRCS_LIST_TO_OBJS
105 $(addprefix $(OBJ_DIR)/, $(addsuffix .dgo, $(foreach file, $(DYNGENSRCS), \
106 $(basename $(notdir $(file))))))
107 endef
108 DYNGENOBJS = $(DYNGENSRCS_LIST_TO_OBJS)
109
110 SRC_PATHS += $(sort $(foreach file, $(SRCS), $(dir $(file))))
111 VPATH :=
112 VPATH += $(addprefix :, $(subst ,:, $(filter-out $($(subst, :, ,$(VPATH))), $(SRC_PATHS))))
113
114 $(APP_EXE): $(OBJ_DIR) $(OBJS)
115 $(CXX) -o $@ $(LDFLAGS) $(OBJS) $(LIBS)
116 $(BLESS) $(APP_EXE)
117
118 $(GUI_APP_EXE): $(OBJ_DIR) $(GUI_OBJS)
119 $(CXX) -o $@ $(LDFLAGS) $(GUI_OBJS) $(GUI_LIBS)
120
121 $(APP)_app: $(APP) ../MacOSX/Info.plist ../MacOSX/$(APP).icns
122 rm -rf $(APP_APP)/Contents
123 mkdir -p $(APP_APP)/Contents
124 ./cpr.sh ../MacOSX/Info.plist $(APP_APP)/Contents/
125 echo -n 'APPL????' > $(APP_APP)/Contents/PkgInfo
126 mkdir -p $(APP_APP)/Contents/MacOS
127 ./cpr.sh $(APP) $(APP_APP)/Contents/MacOS/
128 strip -x $(APP_APP)/Contents/MacOS/$(APP)
129 mkdir -p $(APP_APP)/Contents/Resources
130 ./cpr.sh ../MacOSX/PrefsEditor/standalone_nib/English.lproj $(APP_APP)/Contents/Resources
131 ./cpr.sh ../MacOSX/SheepShaver.icns $(APP_APP)/Contents/Resources/
132
133 $(GUI_APP)_app: $(GUI_APP) ../MacOSX/Info.plist ../MacOSX/$(APP).icns
134 rm -rf $(GUI_APP_APP)/Contents
135 mkdir -p $(GUI_APP_APP)/Contents
136 sed -e "s/$(APP)/$(GUI_APP)/" < ../MacOSX/Info.plist > $(GUI_APP_APP)/Contents/Info.plist
137 echo -n 'APPL????' > $(GUI_APP_APP)/Contents/PkgInfo
138 mkdir -p $(GUI_APP_APP)/Contents/MacOS
139 ./cpr.sh $(GUI_APP) $(GUI_APP_APP)/Contents/MacOS/
140 strip -x $(GUI_APP_APP)/Contents/MacOS/$(GUI_APP)
141 mkdir -p $(GUI_APP_APP)/Contents/Resources
142 ./cpr.sh ../MacOSX/$(APP).icns $(GUI_APP_APP)/Contents/Resources/$(GUI_APP).icns
143
144 modules:
145 cd Linux/NetDriver; make
146
147 install: $(PROGS) installdirs
148 $(INSTALL_PROGRAM) $(APP_EXE) $(DESTDIR)$(bindir)/$(APP_EXE)
149 if test -f "$(GUI_APP_EXE)"; then \
150 $(INSTALL_PROGRAM) $(GUI_APP_EXE) $(DESTDIR)$(bindir)/$(GUI_APP_EXE); \
151 fi
152 -$(INSTALL_DATA) $(APP).1 $(DESTDIR)$(man1dir)/$(APP).1
153 $(INSTALL_DATA) $(KEYCODES) $(DESTDIR)$(datadir)/$(APP)/keycodes
154 $(INSTALL_DATA) tunconfig $(DESTDIR)$(datadir)/$(APP)/tunconfig
155 chmod 755 $(DESTDIR)$(datadir)/$(APP)/tunconfig
156
157 installdirs:
158 $(SHELL) mkinstalldirs $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir) $(DESTDIR)$(datadir)/$(APP)
159
160 uninstall:
161 rm -f $(DESTDIR)$(bindir)/$(APP_EXE)
162 rm -f $(DESTDIR)$(bindir)/$(GUI_APP_EXE)
163 rm -f $(DESTDIR)$(man1dir)/$(APP).1
164 rm -f $(DESTDIR)$(datadir)/$(APP)/keycodes
165 rm -f $(DESTDIR)$(datadir)/$(APP)/tunconfig
166 rmdir $(DESTDIR)$(datadir)/$(APP)
167
168 clean:
169 rm -f $(PROGS) $(OBJ_DIR)/* core* *.core *~ *.bak ppc-execute-impl.cpp
170 rm -f dyngen basic-dyngen-ops.hpp ppc-dyngen-ops.hpp ppc_asm.out.s
171 rm -rf $(APP_APP) $(GUI_APP_APP)
172
173 distclean: clean
174 rm -rf $(OBJ_DIR)
175 rm -f Makefile
176 rm -f config.cache config.log config.status config.h
177 rm -f ../MacOSX/Info.plist
178
179 depend dep:
180 makedepend $(CPPFLAGS) -Y. $(SRCS) 2>/dev/null
181
182 $(OBJ_DIR)/SDLMain.o : SDLMain.m
183 $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@
184 $(OBJ_DIR)/%.o : ../slirp/%.c
185 $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(SLIRP_CFLAGS) -c $< -o $@
186 $(OBJ_DIR)/%.o : %.c
187 $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@
188 $(OBJ_DIR)/%.o : %.cpp
189 $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@
190 $(OBJ_DIR)/%.o : %.mm
191 $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@
192 $(OBJ_DIR)/%.o : %.S
193 $(CPP) $(CPPFLAGS) -D__ASSEMBLY__ $< -o $*.out.s
194 $(AS) $(ASFLAGS) -o $@ $*.out.s
195 rm $*.out.s
196 $(OBJ_DIR)/%.go : %.cpp
197 $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) $(GUI_CFLAGS) -DSTANDALONE_GUI -c $< -o $@
198
199 # Kheperix CPU emulator
200 kpxsrcdir = ../kpx_cpu/src
201 GENEXECPL = $(kpxsrcdir)/cpu/ppc/genexec.pl
202 DYNGEN = dyngen$(EXEEXT)
203
204 ifeq ($(USE_DYNGEN),yes)
205 DYNGENDEPS = basic-dyngen-ops.hpp ppc-dyngen-ops.hpp
206
207 # Only GCC is supported for generating synthetic opcodes
208 $(DYNGEN): $(DYNGENOBJS)
209 $(DYNGEN_CC) -o $@ $(LDFLAGS) $(DYNGENOBJS)
210
211 $(OBJ_DIR)/%.dgo : %.c
212 $(DYNGEN_CC) -xc $(CPPFLAGS) $(DEFS) $(DYNGEN_CFLAGS) -c $< -o $@
213 $(OBJ_DIR)/%.dgo : %.cpp
214 $(DYNGEN_CC) $(CPPFLAGS) $(DEFS) $(DYNGEN_CXXFLAGS) -c $< -o $@
215
216 $(OBJ_DIR)/basic-dyngen.o: basic-dyngen-ops.hpp
217 $(OBJ_DIR)/basic-dyngen-ops.o: $(kpxsrcdir)/cpu/jit/basic-dyngen-ops.cpp
218 $(DYNGEN_CC) $(CPPFLAGS) $(DEFS) $(DYNGEN_CXXFLAGS) $(DYNGEN_OP_FLAGS) -c $< -o $@
219 basic-dyngen-ops.hpp: $(OBJ_DIR)/basic-dyngen-ops.o $(DYNGEN)
220 ./$(DYNGEN) -o $@ $<
221
222 $(OBJ_DIR)/ppc-dyngen.o: ppc-dyngen-ops.hpp
223 $(OBJ_DIR)/ppc-dyngen-ops.o: $(kpxsrcdir)/cpu/ppc/ppc-dyngen-ops.cpp basic-dyngen-ops.hpp
224 $(DYNGEN_CC) $(CPPFLAGS) $(DEFS) $(DYNGEN_CXXFLAGS) $(DYNGEN_OP_FLAGS) -c $< -o $@
225 ppc-dyngen-ops.hpp: $(OBJ_DIR)/ppc-dyngen-ops.o $(DYNGEN)
226 ./$(DYNGEN) -o $@ $<
227
228 $(OBJ_DIR)/sheepshaver_glue.o $(OBJ_DIR)/ppc-cpu.o $(OBJ_DIR)/ppc-decode.o $(OBJ_DIR)/ppc-translate.o $(OBJ_DIR)/ppc-jit.o: basic-dyngen-ops.hpp ppc-dyngen-ops.hpp
229 endif
230
231 $(OBJ_DIR)/ppc-execute.o: ppc-execute-impl.cpp
232 ppc-execute-impl.cpp: $(kpxsrcdir)/cpu/ppc/ppc-decode.cpp $(GENEXECPL) $(DYNGENDEPS)
233 $(CPP) $(CPPFLAGS) -DGENEXEC $< | $(PERL) $(GENEXECPL) > $@
234
235 # PowerPC CPU tester
236 TESTSRCS_ = mathlib/ieeefp.cpp mathlib/mathlib.cpp cpu/ppc/ppc-cpu.cpp cpu/ppc/ppc-decode.cpp cpu/ppc/ppc-execute.cpp cpu/ppc/ppc-translate.cpp test/test-powerpc.cpp $(MONSRCS) vm_alloc.cpp utils/utils-cpuinfo.cpp
237 ifeq ($(USE_DYNGEN),yes)
238 TESTSRCS_ += cpu/jit/jit-cache.cpp cpu/jit/basic-dyngen.cpp cpu/ppc/ppc-dyngen.cpp cpu/ppc/ppc-jit.cpp
239 endif
240 TESTSRCS = $(TESTSRCS_:%.cpp=$(kpxsrcdir)/%.cpp)
241
242 define TESTSRCS_LIST_TO_OBJS
243 $(addprefix $(OBJ_DIR)/, $(addsuffix .o, $(foreach file, $(TESTSRCS), \
244 $(basename $(notdir $(file))))))
245 endef
246 TESTOBJS = $(TESTSRCS_LIST_TO_OBJS)
247
248 $(OBJ_DIR)/test-powerpc.o: $(kpxsrcdir)/test/test-powerpc.cpp
249 $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -DEMU_KHEPERIX -c $< -o $@
250
251 test-powerpc$(EXEEXT): $(TESTOBJS)
252 $(CXX) -o $@ $(LDFLAGS) $(TESTOBJS) $(LIBS)
253
254 #-------------------------------------------------------------------------
255 # DO NOT DELETE THIS LINE -- make depend depends on it.