diff --git a/BasiliskII/README b/BasiliskII/README index 069f0272..8bce8a49 100644 --- a/BasiliskII/README +++ b/BasiliskII/README @@ -505,7 +505,7 @@ ether disable Ethernet networking. Mac OS X: - The "slirp" method described above nearly works. + The "slirp" method described above now seems to work. See the next item for an alternative way to do networking with Basilisk II. diff --git a/BasiliskII/TODO b/BasiliskII/TODO index 4e5f1eb8..f33fdcf5 100644 --- a/BasiliskII/TODO +++ b/BasiliskII/TODO @@ -45,6 +45,11 @@ Unix: - ESD is also available on Solaris - display progress bar during disk file creation in prefs editor +Mac OS X: +- Sound +- Cut and paste +- Lots of other stuff. See src/MacOSX/ToDo.html + Windows - main_windows.cpp: undo the SDL/DIB driver trick - video_windows.cpp: implement with DirectX diff --git a/BasiliskII/src/MacOSX/1_prepare_files.sh b/BasiliskII/src/MacOSX/1_prepare_files.sh index 9641cb13..eeb26f95 100644 --- a/BasiliskII/src/MacOSX/1_prepare_files.sh +++ b/BasiliskII/src/MacOSX/1_prepare_files.sh @@ -6,6 +6,7 @@ ln -sf ../Unix/config.guess . ln -sf ../Unix/config.sub . +ln -sf ../Unix/semaphore.h . cp -pf ../Unix/sys_unix.cpp . cp -pf ../Unix/timer_unix.cpp . ln -sf ../Unix/user_strings_unix.h . diff --git a/BasiliskII/src/MacOSX/BasiliskII.xcode/project.pbxproj b/BasiliskII/src/MacOSX/BasiliskII.xcode/project.pbxproj index 2907a236..8d19465f 100644 --- a/BasiliskII/src/MacOSX/BasiliskII.xcode/project.pbxproj +++ b/BasiliskII/src/MacOSX/BasiliskII.xcode/project.pbxproj @@ -142,6 +142,7 @@ }; 29B97323FDCFA39411CA2CEA = { children = ( + A63638A10964120600BE2F74, 29B97324FDCFA39411CA2CEA, A685FF0D05C4E89D00DDBA94, A685FE6A05C4E87D00DDBA94, @@ -235,13 +236,14 @@ GCC_ENABLE_TRIGRAPHS = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; GCC_OPTIMIZATION_LEVEL = s; - GCC_PREPROCESSOR_DEFINITIONS = "HAVE_CONFIG_H _REENTRANT"; + GCC_PREPROCESSOR_DEFINITIONS = "AQUA HAVE_CONFIG_H HAVE_SLIRP _REENTRANT DATADIR=\"\""; GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO; GCC_WARN_UNKNOWN_PRAGMAS = NO; - HEADER_SEARCH_PATHS = "../include ../uae_cpu"; + HEADER_SEARCH_PATHS = "../include ../uae_cpu ../Unix ../slirp"; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(HOME)/Applications"; + LIBRARY_SEARCH_PATHS = ". /Volumes/Users/nigel/Programming/BasiliskII/BasiliskII/src/MacOSX"; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ""; PRODUCT_NAME = BasiliskII; @@ -351,7 +353,6 @@ A685020C05C4EF6700DDBA94, A685021305C4EFDC00DDBA94, A685021405C4EFDC00DDBA94, - A685021505C4EFDC00DDBA94, A685021605C4EFDC00DDBA94, A685021705C4EFDC00DDBA94, A685022D05C4F04700DDBA94, @@ -375,6 +376,7 @@ A685023F05C4F04700DDBA94, A685024005C4F04700DDBA94, A685024105C4F04700DDBA94, + A6C4EFBF09641353006D945B, ); isa = PBXSourcesBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -387,6 +389,7 @@ A685FF0E05C4E89D00DDBA94, A685FFCE05C4E8CC00DDBA94, A68500CC05C4E8DE00DDBA94, + A63638A20964120600BE2F74, ); isa = PBXFrameworksBuildPhase; runOnlyForDeploymentPostprocessing = 0; @@ -423,6 +426,19 @@ //A62 //A63 //A64 + A63638A10964120600BE2F74 = { + isa = PBXFileReference; + lastKnownFileType = archive.ar; + path = libslirp.a; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + A63638A20964120600BE2F74 = { + fileRef = A63638A10964120600BE2F74; + isa = PBXBuildFile; + settings = { + }; + }; A68500CB05C4E8DE00DDBA94 = { isa = PBXFileReference; lastKnownFileType = wrapper.framework; @@ -995,7 +1011,6 @@ children = ( A685020E05C4EFDC00DDBA94, A685020F05C4EFDC00DDBA94, - A685021005C4EFDC00DDBA94, A685021105C4EFDC00DDBA94, A685021205C4EFDC00DDBA94, ); @@ -1411,15 +1426,6 @@ refType = 2; sourceTree = SOURCE_ROOT; }; - A685021005C4EFDC00DDBA94 = { - fileEncoding = 30; - isa = PBXFileReference; - lastKnownFileType = sourcecode.cpp.cpp; - name = ether_dummy.cpp; - path = ../dummy/ether_dummy.cpp; - refType = 2; - sourceTree = SOURCE_ROOT; - }; A685021105C4EFDC00DDBA94 = { fileEncoding = 30; isa = PBXFileReference; @@ -1450,12 +1456,6 @@ settings = { }; }; - A685021505C4EFDC00DDBA94 = { - fileRef = A685021005C4EFDC00DDBA94; - isa = PBXBuildFile; - settings = { - }; - }; A685021605C4EFDC00DDBA94 = { fileRef = A685021105C4EFDC00DDBA94; isa = PBXBuildFile; @@ -1785,6 +1785,7 @@ }; A685FDBA05C4E7D700DDBA94 = { children = ( + A6C4EFBE09641353006D945B, A68501BA05C4ECDB00DDBA94, A68501D905C4EE5100DDBA94, A68501B305C4EC9500DDBA94, @@ -1866,6 +1867,21 @@ settings = { }; }; + A6C4EFBE09641353006D945B = { + fileEncoding = 30; + isa = PBXFileReference; + lastKnownFileType = sourcecode.cpp.cpp; + name = ether_unix.cpp; + path = ../Unix/ether_unix.cpp; + refType = 2; + sourceTree = SOURCE_ROOT; + }; + A6C4EFBF09641353006D945B = { + fileRef = A6C4EFBE09641353006D945B; + isa = PBXBuildFile; + settings = { + }; + }; }; rootObject = 29B97313FDCFA39411CA2CEA; } diff --git a/BasiliskII/src/MacOSX/Makefile.in b/BasiliskII/src/MacOSX/Makefile.in index e9a4f92c..21f74d67 100644 --- a/BasiliskII/src/MacOSX/Makefile.in +++ b/BasiliskII/src/MacOSX/Makefile.in @@ -18,6 +18,7 @@ BLESS = @BLESS@ IDE = @IDE@ PROJECT = @PROJECT@ IDEARGS = @IDEARGS@ +SLIRP_SRCS = @SLIRP_SRCS@ ## Files OBJ_DIR = build @@ -29,7 +30,7 @@ GENEMUS = cpuemu1.cpp cpuemu2.cpp cpuemu3.cpp cpuemu4.cpp \ # Symlinks to, or copies of, files in other directories GENLINK = README.txt INSTALL.txt install-sh \ - Darwin config.guess config.sub \ + Darwin config.guess config.sub semaphore.h \ sys_unix.cpp timer_unix.cpp user_strings_unix.h GEN = $(GENEMUS) $(GENSRCS) @@ -39,10 +40,16 @@ SRCS = BasiliskII.icns Controller.h Controller.mm Credits.html \ NNThread.h NNThread.m PrefsEditor.h PrefsEditor.mm \ ToDo.html Versions.html \ audio_macosx.mm extfs_macosx.mm macos_util_macosx.h main_macosx.h \ - main_macosx.mm misc_macosx.h misc_macosx.mm nowrite.icns prefs_macosx.cpp \ - sysdeps.h video_macosx.mm video_macosx.h + main_macosx.mm misc_macosx.h misc_macosx.mm nowrite.icns \ + prefs_macosx.cpp sysdeps.h video_macosx.mm video_macosx.h + +SLIRP_OBJ = $(patsubst ../slirp/%.c, build/%.o, $(SLIRP_SRCS)) +SLIRP_LIB = libslirp.a + APP = $(OBJ_DIR)/BasiliskII.app +DEPS = $(OBJ_DIR) $(GEN) $(SLIRP_LIB) $(SRCS) + ## Rules .PHONY: mostlyclean clean distclean depend dep @@ -51,7 +58,7 @@ APP = $(OBJ_DIR)/BasiliskII.app all: $(APP) -ide: $(OBJ_DIR) $(GEN) $(SRCS) +ide: $(DEPS) open $(PROJECT) test: $(APP) @@ -61,7 +68,7 @@ $(OBJ_DIR):: @[ -d $(OBJ_DIR) ] || mkdir $(OBJ_DIR) > /dev/null 2>&1 -$(APP): $(OBJ_DIR) $(GEN) $(SRCS) +$(APP): $(DEPS) $(IDE) -buildstyle Deployment $(IDEARGS) \ && $(BLESS) $(APP)/Contents/MacOS/BasiliskII \ || rm -fr $(APP) @@ -77,6 +84,7 @@ mostlyclean: rm -fr English.lproj/*~* $(OBJ_DIR)/* core* *.core *~ *.bak clean: mostlyclean + rm -f $(SLIRP_LIB) rm -f $(GEN) rm -f cpudefs.cpp cputmp*.s cpufast*.s cpustbl.cpp @@ -124,5 +132,12 @@ cpufast.s: cpuemu.s $(OBJ_DIR)/cpuopti cpuemu.s: cpuemu.cpp $(CXX) $(CPPFLAGS) $(DEFS) -S $(CXXFLAGS) $< -o $@ + +$(SLIRP_OBJ) : build/%.o : ../slirp/%.c + $(CC) -I../slirp $(CPPFLAGS) $(DEFS) $(CFLAGS) $(LDFLAGS) -c $< -o $@ + +$(SLIRP_LIB) : $(SLIRP_OBJ) + libtool -static -o libslirp.a build/*.o + #------------------------------------------------------------------------- # DO NOT DELETE THIS LINE -- make depend depends on it. diff --git a/BasiliskII/src/MacOSX/ToDo.html b/BasiliskII/src/MacOSX/ToDo.html index 2d209eb8..7a5111ed 100644 --- a/BasiliskII/src/MacOSX/ToDo.html +++ b/BasiliskII/src/MacOSX/ToDo.html @@ -15,6 +15,9 @@ Bugs:
  • Status of 'dd' command is not always correct. (If it runs out of space, an error about file not found is printed?)
  • The Snapshot function is currently broken.
  • +
  • The EtherNet thread doesn't seem to terminate, which means that the + emulation doesn't shutdown cleanly. Not sure if this is just a + 10.3 thing, or if it is something about my NSThread classes.
  • Untested: