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

# User Rev Content
1 cebix 1.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 gbeauche 1.11 DESTDIR =
15    
16 cebix 1.1 CC = @CC@
17     CXX = @CXX@
18     CFLAGS = @CFLAGS@
19     CXXFLAGS = @CXXFLAGS@
20 gbeauche 1.35 CPPFLAGS = @CPPFLAGS@ -I../include -I. -I../slirp
21 cebix 1.1 DEFS = @DEFS@ -D_REENTRANT -DDATADIR=\"$(datadir)/$(APP)\"
22     LDFLAGS = @LDFLAGS@
23     LIBS = @LIBS@
24     SYSSRCS = @SYSSRCS@
25 gbeauche 1.7 CPUSRCS = @CPUSRCS@
26 gbeauche 1.23 MONSRCS = @MONSRCS@
27 gbeauche 1.29 PERL = @PERL@
28 gbeauche 1.27 USE_DYNGEN = @USE_DYNGEN@
29 gbeauche 1.7 DYNGENSRCS = @DYNGENSRCS@
30 gbeauche 1.10 DYNGEN_CC = @DYNGEN_CC@
31 gbeauche 1.37 DYNGEN_CFLAGS = @DYNGEN_CFLAGS@
32     DYNGEN_CXXFLAGS = @DYNGEN_CXXFLAGS@
33 gbeauche 1.7 DYNGEN_OP_FLAGS = @DYNGEN_OP_FLAGS@
34 gbeauche 1.9 BLESS = @BLESS@
35 gbeauche 1.20 EXEEXT = @EXEEXT@
36 gbeauche 1.15 KEYCODES = @KEYCODES@
37 cebix 1.1 INSTALL = @INSTALL@
38     INSTALL_PROGRAM = @INSTALL_PROGRAM@ -s
39     INSTALL_DATA = @INSTALL_DATA@
40    
41 gbeauche 1.35 SLIRP_CFLAGS = @SLIRP_CFLAGS@
42     SLIRP_SRCS = @SLIRP_SRCS@
43     SLIRP_OBJS = $(SLIRP_SRCS:../slirp/%.c=obj/%.o)
44    
45 gbeauche 1.38 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 gbeauche 1.26 # Append disassembler to dyngen, if available
52 gbeauche 1.27 ifneq (:no,$(MONSRCS):$(USE_DYNGEN))
53 gbeauche 1.26 DYNGENSRCS += $(filter %i386-dis.c,$(MONSRCS))
54     endif
55    
56 cebix 1.1 ## Files
57 gbeauche 1.28 SRCS = ../main.cpp main_unix.cpp ../prefs.cpp ../prefs_items.cpp prefs_unix.cpp sys_unix.cpp \
58 cebix 1.1 ../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 gbeauche 1.13 ../adb.cpp ../sony.cpp ../disk.cpp ../cdrom.cpp ../scsi.cpp \
61 gbeauche 1.16 ../gfxaccel.cpp ../video.cpp video_blit.cpp ../audio.cpp ../ether.cpp ../thunks.cpp \
62 gbeauche 1.18 ../serial.cpp ../extfs.cpp \
63 gbeauche 1.2 about_window_unix.cpp ../user_strings.cpp user_strings_unix.cpp \
64 gbeauche 1.38 vm_alloc.cpp sigsegv.cpp rpc_unix.cpp \
65 gbeauche 1.35 sshpty.c strlcpy.c $(SYSSRCS) $(CPUSRCS) $(MONSRCS) $(SLIRP_SRCS)
66 cebix 1.1 APP = SheepShaver
67 gbeauche 1.20 APP_EXE = $(APP)$(EXEEXT)
68 gbeauche 1.17 APP_APP = $(APP).app
69 cebix 1.1
70 gbeauche 1.38 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 gbeauche 1.39 else
77 gbeauche 1.38 CXXFLAGS += $(GUI_CFLAGS)
78     LIBS += $(GUI_LIBS)
79 gbeauche 1.39 endif
80 gbeauche 1.38
81 cebix 1.1 ## Rules
82     .PHONY: modules install uninstall clean distclean depend dep
83     .SUFFIXES:
84     .SUFFIXES: .c .cpp .S .o .h
85    
86 gbeauche 1.38 all: $(PROGS)
87 cebix 1.1
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 gbeauche 1.38 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 gbeauche 1.7 define DYNGENSRCS_LIST_TO_OBJS
105 gbeauche 1.37 $(addprefix $(OBJ_DIR)/, $(addsuffix .dgo, $(foreach file, $(DYNGENSRCS), \
106 gbeauche 1.7 $(basename $(notdir $(file))))))
107     endef
108     DYNGENOBJS = $(DYNGENSRCS_LIST_TO_OBJS)
109    
110 cebix 1.1 SRC_PATHS += $(sort $(foreach file, $(SRCS), $(dir $(file))))
111     VPATH :=
112     VPATH += $(addprefix :, $(subst ,:, $(filter-out $($(subst, :, ,$(VPATH))), $(SRC_PATHS))))
113    
114 gbeauche 1.20 $(APP_EXE): $(OBJ_DIR) $(OBJS)
115 gbeauche 1.38 $(CXX) -o $@ $(LDFLAGS) $(OBJS) $(LIBS)
116 gbeauche 1.20 $(BLESS) $(APP_EXE)
117 cebix 1.1
118 gbeauche 1.38 $(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 asvitkine 1.45 rm -rf $(APP_APP)/Contents
123 gbeauche 1.17 mkdir -p $(APP_APP)/Contents
124 asvitkine 1.45 ./cpr.sh ../MacOSX/Info.plist $(APP_APP)/Contents/
125 gbeauche 1.17 echo -n 'APPL????' > $(APP_APP)/Contents/PkgInfo
126     mkdir -p $(APP_APP)/Contents/MacOS
127 asvitkine 1.45 ./cpr.sh $(APP) $(APP_APP)/Contents/MacOS/
128 asvitkine 1.44 strip -x $(APP_APP)/Contents/MacOS/$(APP)
129 gbeauche 1.17 mkdir -p $(APP_APP)/Contents/Resources
130 asvitkine 1.45 ./cpr.sh ../MacOSX/PrefsEditor/standalone_nib/English.lproj $(APP_APP)/Contents/Resources
131     ./cpr.sh ../MacOSX/SheepShaver.icns $(APP_APP)/Contents/Resources/
132 gbeauche 1.17
133 gbeauche 1.38 $(GUI_APP)_app: $(GUI_APP) ../MacOSX/Info.plist ../MacOSX/$(APP).icns
134 asvitkine 1.45 rm -rf $(GUI_APP_APP)/Contents
135 gbeauche 1.38 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 asvitkine 1.45 ./cpr.sh $(GUI_APP) $(GUI_APP_APP)/Contents/MacOS/
140 asvitkine 1.44 strip -x $(GUI_APP_APP)/Contents/MacOS/$(GUI_APP)
141 gbeauche 1.38 mkdir -p $(GUI_APP_APP)/Contents/Resources
142 asvitkine 1.45 ./cpr.sh ../MacOSX/$(APP).icns $(GUI_APP_APP)/Contents/Resources/$(GUI_APP).icns
143 gbeauche 1.38
144 cebix 1.1 modules:
145 gbeauche 1.31 cd Linux/NetDriver; make
146 cebix 1.1
147 gbeauche 1.38 install: $(PROGS) installdirs
148 gbeauche 1.20 $(INSTALL_PROGRAM) $(APP_EXE) $(DESTDIR)$(bindir)/$(APP_EXE)
149 gbeauche 1.38 if test -f "$(GUI_APP_EXE)"; then \
150     $(INSTALL_PROGRAM) $(GUI_APP_EXE) $(DESTDIR)$(bindir)/$(GUI_APP_EXE); \
151     fi
152 gbeauche 1.11 -$(INSTALL_DATA) $(APP).1 $(DESTDIR)$(man1dir)/$(APP).1
153 gbeauche 1.14 $(INSTALL_DATA) $(KEYCODES) $(DESTDIR)$(datadir)/$(APP)/keycodes
154 gbeauche 1.11 $(INSTALL_DATA) tunconfig $(DESTDIR)$(datadir)/$(APP)/tunconfig
155 gbeauche 1.12 chmod 755 $(DESTDIR)$(datadir)/$(APP)/tunconfig
156 cebix 1.1
157     installdirs:
158 gbeauche 1.11 $(SHELL) mkinstalldirs $(DESTDIR)$(bindir) $(DESTDIR)$(man1dir) $(DESTDIR)$(datadir)/$(APP)
159 cebix 1.1
160     uninstall:
161 gbeauche 1.20 rm -f $(DESTDIR)$(bindir)/$(APP_EXE)
162 gbeauche 1.38 rm -f $(DESTDIR)$(bindir)/$(GUI_APP_EXE)
163 gbeauche 1.11 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 cebix 1.1
168     clean:
169 gbeauche 1.40 rm -f $(PROGS) $(OBJ_DIR)/* core* *.core *~ *.bak ppc-execute-impl.cpp
170 gbeauche 1.34 rm -f dyngen basic-dyngen-ops.hpp ppc-dyngen-ops.hpp ppc_asm.out.s
171 gbeauche 1.40 rm -rf $(APP_APP) $(GUI_APP_APP)
172 cebix 1.1
173     distclean: clean
174     rm -rf $(OBJ_DIR)
175     rm -f Makefile
176     rm -f config.cache config.log config.status config.h
177 gbeauche 1.17 rm -f ../MacOSX/Info.plist
178 cebix 1.1
179     depend dep:
180     makedepend $(CPPFLAGS) -Y. $(SRCS) 2>/dev/null
181    
182 asvitkine 1.46 $(OBJ_DIR)/SDLMain.o : SDLMain.m
183     $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@
184 gbeauche 1.35 $(OBJ_DIR)/%.o : ../slirp/%.c
185     $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(SLIRP_CFLAGS) -c $< -o $@
186 cebix 1.1 $(OBJ_DIR)/%.o : %.c
187     $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@
188     $(OBJ_DIR)/%.o : %.cpp
189     $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@
190 gbeauche 1.18 $(OBJ_DIR)/%.o : %.mm
191     $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@
192 cebix 1.1 $(OBJ_DIR)/%.o : %.S
193 gbeauche 1.30 $(CPP) $(CPPFLAGS) -D__ASSEMBLY__ $< -o $*.out.s
194     $(AS) $(ASFLAGS) -o $@ $*.out.s
195     rm $*.out.s
196 gbeauche 1.38 $(OBJ_DIR)/%.go : %.cpp
197     $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) $(GUI_CFLAGS) -DSTANDALONE_GUI -c $< -o $@
198 gbeauche 1.5
199     # Kheperix CPU emulator
200 gbeauche 1.19 kpxsrcdir = ../kpx_cpu/src
201 gbeauche 1.29 GENEXECPL = $(kpxsrcdir)/cpu/ppc/genexec.pl
202 gbeauche 1.20 DYNGEN = dyngen$(EXEEXT)
203 gbeauche 1.5
204 gbeauche 1.27 ifeq ($(USE_DYNGEN),yes)
205 gbeauche 1.20 DYNGENDEPS = basic-dyngen-ops.hpp ppc-dyngen-ops.hpp
206    
207 gbeauche 1.37 # Only GCC is supported for generating synthetic opcodes
208 gbeauche 1.20 $(DYNGEN): $(DYNGENOBJS)
209 gbeauche 1.37 $(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 gbeauche 1.7
216     $(OBJ_DIR)/basic-dyngen.o: basic-dyngen-ops.hpp
217 gbeauche 1.19 $(OBJ_DIR)/basic-dyngen-ops.o: $(kpxsrcdir)/cpu/jit/basic-dyngen-ops.cpp
218 gbeauche 1.37 $(DYNGEN_CC) $(CPPFLAGS) $(DEFS) $(DYNGEN_CXXFLAGS) $(DYNGEN_OP_FLAGS) -c $< -o $@
219 gbeauche 1.20 basic-dyngen-ops.hpp: $(OBJ_DIR)/basic-dyngen-ops.o $(DYNGEN)
220     ./$(DYNGEN) -o $@ $<
221 gbeauche 1.7
222     $(OBJ_DIR)/ppc-dyngen.o: ppc-dyngen-ops.hpp
223 gbeauche 1.19 $(OBJ_DIR)/ppc-dyngen-ops.o: $(kpxsrcdir)/cpu/ppc/ppc-dyngen-ops.cpp basic-dyngen-ops.hpp
224 gbeauche 1.37 $(DYNGEN_CC) $(CPPFLAGS) $(DEFS) $(DYNGEN_CXXFLAGS) $(DYNGEN_OP_FLAGS) -c $< -o $@
225 gbeauche 1.20 ppc-dyngen-ops.hpp: $(OBJ_DIR)/ppc-dyngen-ops.o $(DYNGEN)
226     ./$(DYNGEN) -o $@ $<
227 cebix 1.1
228 gbeauche 1.42 $(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 gbeauche 1.20 endif
230 gbeauche 1.19
231 gbeauche 1.22 $(OBJ_DIR)/ppc-execute.o: ppc-execute-impl.cpp
232 gbeauche 1.29 ppc-execute-impl.cpp: $(kpxsrcdir)/cpu/ppc/ppc-decode.cpp $(GENEXECPL) $(DYNGENDEPS)
233     $(CPP) $(CPPFLAGS) -DGENEXEC $< | $(PERL) $(GENEXECPL) > $@
234 gbeauche 1.22
235 gbeauche 1.23 # PowerPC CPU tester
236 gbeauche 1.41 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 gbeauche 1.27 ifeq ($(USE_DYNGEN),yes)
238 gbeauche 1.41 TESTSRCS_ += cpu/jit/jit-cache.cpp cpu/jit/basic-dyngen.cpp cpu/ppc/ppc-dyngen.cpp cpu/ppc/ppc-jit.cpp
239 gbeauche 1.24 endif
240 gbeauche 1.23 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 cebix 1.1 #-------------------------------------------------------------------------
255     # DO NOT DELETE THIS LINE -- make depend depends on it.