--- BasiliskII/src/MacOSX/Makefile.in 2003/03/24 06:18:20 1.8 +++ BasiliskII/src/MacOSX/Makefile.in 2009/11/07 07:19:25 1.30 @@ -1,114 +1,303 @@ -# MacOS X makefile for Basilisk II. Slightly based on the Unix one +# Unix makefile for Basilisk II ## System specific configuration -@SET_MAKE@ SHELL = /bin/sh - -CC = @CC@ -CXX = @CXX@ -CFLAGS = @CFLAGS@ -CXXFLAGS = @CXXFLAGS@ -CPPFLAGS = @CPPFLAGS@ -I../include -I. @CPUINCLUDES@ -DEFS = @DEFS@ @DEFINES@ -D_REENTRANT +HOST_CC = @CC@ +HOST_CXX = @CXX@ +CC_PROG = @CC@ +CXX_PROG = @CXX@ +CFLAGS = @CFLAGS@ -g +CXXFLAGS = @CXXFLAGS@ -g +CPPFLAGS = @CPPFLAGS@ -I../include -I. -I../uae_cpu +DEFS = @DEFS@ @DEFINES@ -D_REENTRANT -DAQUA -DFPU_IEEE LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ +MONSRCS = @MONSRCS@ +LN_S = ln -s + +## Compilers selection (XXX hackery for 10.2 cross-compilation...) +SDK_VERSION.ppc = @PPC_SDK_VERSION@ +SDK_VERSION = $(SDK_VERSION.$(ARCH)) +ifeq ($(SDK_VERSION), 10.2.8) +CC_PROG = gcc-3.3 +CXX_PROG = g++-3.3 +SDK_ROOT = /Developer/SDKs/MacOSX10.2.8.sdk +CC_ROOT = -F$(SDK_ROOT)/System/Library/Frameworks +LDFLAGS += -Wl,-syslibroot,$(SDK_ROOT) +endif +ifeq ($(SDK_VERSION), 10.3.9) +CC_ROOT = -isysroot /Developer/SDKs/MacOSX10.3.9.sdk -mmacosx-version-min=10.3 +endif +ifeq ($(SDK_VERSION), 10.4) +CC_ROOT = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 +endif +CC = $(CC_PROG) $(CC_ROOT) -arch $(ARCH) +CXX = $(CXX_PROG) $(CC_ROOT) -arch $(ARCH) + +## slirp network emulation code +WANT_SLIRP = @WANT_SLIRP@ +ifeq ($(WANT_SLIRP), yes) +CPPFLAGS += -I../slirp +SLIRP_CFLAGS = @SLIRP_CFLAGS@ +SLIRP_SRCS = @SLIRP_SRCS@ +SLIRP_OBJS = $(SLIRP_SRCS:../slirp/%.c=obj/%.o) +endif + +## CPU emulation code +WANT_JIT = @WANT_JIT@ +WANT_JIT_DEBUG = @WANT_JIT_DEBUG@ +USE_JIT = no +CPUSRCS = \ + ../uae_cpu/basilisk_glue.cpp ../uae_cpu/readcpu.cpp \ + ../uae_cpu/memory.cpp ../uae_cpu/newcpu.cpp ../uae_cpu/fpu/fpu_ieee.cpp +GEN_CPUSRCS = \ + cpustbl.cpp cpudefs.cpp \ + cpuemu1.cpp cpuemu2.cpp cpuemu3.cpp cpuemu4.cpp \ + cpuemu5.cpp cpuemu6.cpp cpuemu7.cpp cpuemu8.cpp +ifeq ($(ARCH), i386) +USE_JIT = $(WANT_JIT) +DEFS += -DUNALIGNED_PROFITABLE -DREGPARAM="__attribute__((regparm(3)))" +DEFS += -DX86_ASSEMBLY -DOPTIMIZED_FLAGS -DSAHF_SETO_PROFITABLE +endif +ifeq ($(ARCH), x86_64) +USE_JIT = $(WANT_JIT) +DEFS += -DUNALIGNED_PROFITABLE +DEFS += -DX86_64_ASSEMBLY -DOPTIMIZED_FLAGS +endif +ifeq ($(USE_JIT), yes) +DEFS += -DUSE_JIT -DUSE_JIT_FPU +ifeq ($(WANT_JIT_DEBUG), yes) +DEFS += -DJIT_DEBUG +endif +CPUSRCS += \ + ../uae_cpu/compiler/compemu_support.cpp \ + ../uae_cpu/compiler/compemu_fpp.cpp +GEN_CPUSRCS += \ + cpuemu1_nf.cpp cpuemu2_nf.cpp cpuemu3_nf.cpp cpuemu4_nf.cpp \ + cpuemu5_nf.cpp cpuemu6_nf.cpp cpuemu7_nf.cpp cpuemu8_nf.cpp \ + compemu1.cpp compemu2.cpp compemu3.cpp compemu4.cpp \ + compemu5.cpp compemu6.cpp compemu7.cpp compemu8.cpp \ + cpustbl_nf.cpp compstbl.cpp +endif + +GEN_DIR = gen +ifneq ($(ARCH),) +GEN_DIR = gen.$(ARCH) +endif +CPUSRCS += $(foreach file, $(GEN_CPUSRCS), $(GEN_DIR)/$(file)) +CPPFLAGS += -I$(GEN_DIR) ## Files -OBJ_DIR = build -GENSRCS = cpudefs.cpp cpuemu.cpp cpustbl.cpp cputbl.h +UNIXSRCS = vm_alloc.cpp vm_alloc.h sigsegv.cpp sigsegv.h video_vosf.h video_blit.cpp \ + xpram_unix.cpp user_strings_unix.cpp user_strings_unix.h \ + serial_unix.cpp ether_unix.cpp sys_unix.cpp timer_unix.cpp \ + sshpty.c sshpty.h strlcpy.c strlcpy.h semaphore.h +SRCS = ../main.cpp main_macosx.mm ../prefs.cpp ../prefs_items.cpp prefs_macosx.mm \ + sys_unix.cpp sys_darwin.cpp ../rom_patches.cpp ../slot_rom.cpp ../rsrc_patches.cpp \ + ../emul_op.cpp ../macos_util.cpp ../xpram.cpp xpram_unix.cpp ../timer.cpp \ + timer_unix.cpp ../adb.cpp ../serial.cpp serial_unix.cpp ../ether.cpp ether_unix.cpp \ + ../sony.cpp ../disk.cpp ../cdrom.cpp ../scsi.cpp ../video.cpp video_macosx.mm \ + vm_alloc.cpp sigsegv.cpp ../audio.cpp ../extfs.cpp extfs_macosx.cpp \ + ../user_strings.cpp user_strings_unix.cpp clip_macosx.cpp misc_macosx.mm \ + ../dummy/scsi_dummy.cpp \ + audio_macosx.cpp AudioBackEnd.cpp AudioDevice.cpp MacOSX_sound_if.cpp \ + NNThread.m Emulator.mm EmulatorView.mm Controller.mm PrefsEditor.mm \ + sshpty.c strlcpy.c \ + $(MONSRCS) $(CPUSRCS) $(SLIRP_SRCS) + +## Documentation files +DOCS = README.txt Credits.html ToDo.html HowTo.html Versions.html + +## Binaries to build +APP = BasiliskII +APP_APP = $(APP).app +TARGET_ARCHES = @TARGET_ARCHES@ +PROGS = $(foreach arch, $(TARGET_ARCHES), $(APP).$(arch)) -# Wrappers which split the very large cpuemu.cpp into smaller compile units -GENEMUS = cpuemu1.cpp cpuemu2.cpp cpuemu3.cpp cpuemu4.cpp \ - cpuemu5.cpp cpuemu6.cpp cpuemu7.cpp cpuemu8.cpp - -# Symlinks to files in other directories -GENLINK = README.txt install-sh \ - config.guess config.sub sys_unix.cpp user_strings_unix.h - -GEN = $(GENEMUS) $(GENSRCS) - -SRCS = BasiliskII.icns Controller.h Controller.mm Credits.html \ - Emulator.h Emulator.mm EmulatorView.h EmulatorView.mm English.lproj \ - 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 prefs_macosx.cpp \ - sysdeps.h video_macosx.mm video_macosx.h -APP = $(OBJ_DIR)/BasiliskII.app +BLESS = $(OBJ_DIR)/lowmem ## Rules - -.PHONY: mostlyclean clean distclean depend dep +.PHONY: modules install installdirs uninstall mostlyclean clean distclean depend dep .SUFFIXES: .SUFFIXES: .c .cpp .s .o .h -all: $(APP) - -ide: $(OBJ_DIR) $(GEN) $(SRCS) - open BasiliskII.pbproj - -test: $(APP) - open $(APP) +all: $(APP)_app +README.txt: ../../README + $(LN_S) $< $@ +$(UNIXSRCS): %: ../Unix/% + $(LN_S) $< $@ + +OBJ_DIR = obj +ifneq ($(ARCH),) +OBJ_DIR = obj.$(ARCH) +endif $(OBJ_DIR):: @[ -d $(OBJ_DIR) ] || mkdir $(OBJ_DIR) > /dev/null 2>&1 - -$(APP): $(OBJ_DIR) $(GEN) $(SRCS) - pbxbuild -buildstyle Deployment -# pbxbuild - -BasiliskII.icns : - touch $@ +define SRCS_LIST_TO_OBJS + $(addprefix $(OBJ_DIR)/, $(addsuffix .o, $(foreach file, $(SRCS), \ + $(basename $(notdir $(file)))))) +endef +OBJS = $(SRCS_LIST_TO_OBJS) + +SRC_PATHS += $(sort $(foreach file, $(SRCS), $(dir $(file)))) +VPATH := +VPATH += $(addprefix :, $(subst ,:, $(filter-out $($(subst, :, ,$(VPATH))), $(SRC_PATHS)))) + +define PROGS_template +$(APP).$(1): links + +$(MAKE) $(OBJ_DIR).$(1)/$(APP) ARCH=$(1) + $(LN_S) -f $(OBJ_DIR).$(1)/$(APP) $(APP).$(1) +endef + +$(APP): $(PROGS) + lipo $(foreach arch, $(TARGET_ARCHES), -arch $(arch) $(APP).$(arch)) \ + -create -output $@ + +$(foreach arch,$(TARGET_ARCHES),$(eval $(call PROGS_template,$(arch)))) + +links: $(UNIXSRCS) + +$(BLESS): $(OBJ_DIR) $(OBJ_DIR)/lowmem.o + $(HOST_CC) -o $@ $(OBJ_DIR)/lowmem.o +$(OBJ_DIR)/lowmem.o: ../Unix/Darwin/lowmem.c + $(HOST_CC) -o $@ -c $< + +$(OBJ_DIR)/$(APP): $(OBJ_DIR) $(GEN_DIR) $(OBJS) $(BLESS) + $(CXX) -o $@ $(LDFLAGS) $(OBJS) $(LIBS) + $(BLESS) $@ + +$(APP)_app: $(APP) $(DOCS) Info.plist $(APP).icns + mkdir -p $(APP_APP)/Contents + cp -f ../MacOSX/Info.plist $(APP_APP)/Contents/ + echo -n 'APPL????' > $(APP_APP)/Contents/PkgInfo + mkdir -p $(APP_APP)/Contents/MacOS + cp -f $(APP) $(APP_APP)/Contents/MacOS/ + strip -x $(APP_APP)/Contents/MacOS/$(APP) + mkdir -p $(APP_APP)/Contents/Resources + cp -Rp English.lproj $(APP_APP)/Contents/Resources/ + cp -f $(APP).icns $(APP_APP)/Contents/Resources/ + cp -f $(DOCS) $(APP_APP)/Contents/Resources/ + find $(APP_APP) -type d -name CVS | xargs rm -rf mostlyclean: - rm -fr English.lproj/*~* $(OBJ_DIR)/* core* *.core *~ *.bak + rm -f $(PROGS) $(OBJ_DIR)/* core* *.core *~ *.bak + rm -f $(foreach arch, $(TARGET_ARCHES), $(GEN_DIR).$(arch)/*) + rm -f $(foreach arch, $(TARGET_ARCHES), $(OBJ_DIR).$(arch)/*) clean: mostlyclean - rm -f $(GEN) - rm -f cpudefs.cpp cputmp*.s cpufast*.s cpustbl.cpp + rm -f $(UNIXSRCS) distclean: clean - rm -fr $(OBJ_DIR) - rm -fr $(GENLINK) - rm -f config.cache config.log config.status config.h config.h.in - rm -f configure + rm -rf $(foreach arch, $(TARGET_ARCHES), $(GEN_DIR).$(arch)) + rm -rf $(foreach arch, $(TARGET_ARCHES), $(OBJ_DIR).$(arch)) + rm -rf autom4te.cache rm -f Makefile + rm -f config.cache config.log config.status config.h + rm -f Darwin/lowmem Darwin/pagezero +depend dep: + makedepend $(CPPFLAGS) -Y. $(SRCS) 2>/dev/null - - -$(OBJ_DIR)/build68k: ../uae_cpu/build68k.c - $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(LDFLAGS) $< -o $@ - -$(OBJ_DIR)/cpuopti: ../uae_cpu/cpuopti.c - $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(LDFLAGS) $< -o $@ - -$(OBJ_DIR)/gencpu: cpudefs.cpp ../uae_cpu/gencpu.c ../uae_cpu/readcpu.cpp - $(CXX) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ - - - -cpudefs.cpp: $(OBJ_DIR)/build68k ../uae_cpu/table68k - $(OBJ_DIR)/build68k < ../uae_cpu/table68k > $@ - -cpuemu.cpp cpustbl.cpp cputbl.h: $(OBJ_DIR)/gencpu - $< - - -$(GENEMUS) : cpuemu.cpp - for i in 1 2 3 4 5 6 7 8; \ - do \ - printf "#define PART_%d\n#include \"%s\"\n" $$i $< >cpuemu$$i.cpp; \ - done - - -cpufast.s: cpuemu.s $(OBJ_DIR)/cpuopti - $(OBJ_DIR)/cpuopti $@ || mv cputmp.s $@ - -cpuemu.s: cpuemu.cpp - $(CXX) $(CPPFLAGS) $(DEFS) -S $(CXXFLAGS) $< -o $@ +$(OBJ_DIR)/%.o : ../slirp/%.c + $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(SLIRP_CFLAGS) -c $< -o $@ +$(OBJ_DIR)/%.o : %.c + $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@ +$(OBJ_DIR)/%.o : %.cpp + $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/%.o : %.m + $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@ +$(OBJ_DIR)/%.o : %.mm + $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/%.o : %.s + $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@ +$(OBJ_DIR)/%.ho : %.c + $(HOST_CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@ +$(OBJ_DIR)/%.ho : %.cpp + $(HOST_CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@ + +$(OBJ_DIR)/build68k: $(OBJ_DIR)/build68k.ho + $(HOST_CC) -o $@ $(OBJ_DIR)/build68k.ho +$(OBJ_DIR)/gencpu: $(OBJ_DIR)/gencpu.ho $(OBJ_DIR)/readcpu.ho $(OBJ_DIR)/cpudefs.ho + $(HOST_CXX) -o $@ $(OBJ_DIR)/gencpu.ho $(OBJ_DIR)/readcpu.ho $(OBJ_DIR)/cpudefs.ho +$(OBJ_DIR)/gencomp: $(OBJ_DIR)/gencomp.ho $(OBJ_DIR)/readcpu.ho $(OBJ_DIR)/cpudefs.ho + $(HOST_CXX) -o $@ $(OBJ_DIR)/gencomp.ho $(OBJ_DIR)/readcpu.ho $(OBJ_DIR)/cpudefs.ho + +$(GEN_DIR):: + @[ -d $(GEN_DIR) ] || mkdir $(GEN_DIR) > /dev/null 2>&1 + +$(GEN_DIR)/cpudefs.cpp: $(OBJ_DIR)/build68k ../uae_cpu/table68k + $(OBJ_DIR)/build68k <../uae_cpu/table68k > $@ +$(GEN_DIR)/cpustbl.cpp: $(GEN_DIR)/cpuemu.cpp +$(GEN_DIR)/cpustbl_nf.cpp: $(GEN_DIR)/cpustbl.cpp +$(GEN_DIR)/compstbl.cpp: $(GEN_DIR)/compemu.cpp +$(GEN_DIR)/cputbl.h: $(GEN_DIR)/cpuemu.cpp +$(GEN_DIR)/comptbl.h: $(GEN_DIR)/compemu.cpp + +$(GEN_DIR)/cpuemu.cpp: $(OBJ_DIR)/gencpu + cd $(GEN_DIR) && ../$(OBJ_DIR)/gencpu + +$(GEN_DIR)/compemu.cpp: $(OBJ_DIR)/gencomp + cd $(GEN_DIR) && ../$(OBJ_DIR)/gencomp + +$(OBJ_DIR)/cpustbl_nf.o: $(GEN_DIR)/cpustbl.cpp + $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -DNOFLAGS -c $< -o $@ + +$(OBJ_DIR)/compemu_support.o: compemu_support.cpp $(GEN_DIR)/comptbl.h + $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@ + +$(OBJ_DIR)/cpuemu1.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_1 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu2.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_2 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu3.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_3 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu4.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_4 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu5.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_5 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu6.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_6 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu7.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_7 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu8.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_8 $(CXXFLAGS) -c $< -o $@ + +$(OBJ_DIR)/cpuemu1_nf.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_1 -DNOFLAGS $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu2_nf.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_2 -DNOFLAGS $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu3_nf.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_3 -DNOFLAGS $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu4_nf.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_4 -DNOFLAGS $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu5_nf.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_5 -DNOFLAGS $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu6_nf.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_6 -DNOFLAGS $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu7_nf.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_7 -DNOFLAGS $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/cpuemu8_nf.o: $(GEN_DIR)/cpuemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_8 -DNOFLAGS $(CXXFLAGS) -c $< -o $@ + +$(OBJ_DIR)/compemu1.o: $(GEN_DIR)/compemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_1 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/compemu2.o: $(GEN_DIR)/compemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_2 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/compemu3.o: $(GEN_DIR)/compemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_3 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/compemu4.o: $(GEN_DIR)/compemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_4 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/compemu5.o: $(GEN_DIR)/compemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_5 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/compemu6.o: $(GEN_DIR)/compemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_6 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/compemu7.o: $(GEN_DIR)/compemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_7 $(CXXFLAGS) -c $< -o $@ +$(OBJ_DIR)/compemu8.o: $(GEN_DIR)/compemu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) -DPART_8 $(CXXFLAGS) -c $< -o $@ #------------------------------------------------------------------------- # DO NOT DELETE THIS LINE -- make depend depends on it.