--- BasiliskII/src/MacOSX/Makefile.in 2002/03/16 09:09:19 1.3 +++ BasiliskII/src/MacOSX/Makefile.in 2006/05/25 05:03:03 1.20 @@ -1,3 +1,4 @@ +# $Id: Makefile.in,v 1.20 2006/05/25 05:03:03 nigel Exp $ # MacOS X makefile for Basilisk II. Slightly based on the Unix one ## System specific configuration @@ -9,24 +10,53 @@ CC = @CC@ CXX = @CXX@ CFLAGS = @CFLAGS@ CXXFLAGS = @CXXFLAGS@ -CPPFLAGS = @CPPFLAGS@ -I../include -I. -I../uae_cpu +CPPFLAGS = @CPPFLAGS@ -I../include -I. @CPUINCLUDES@ DEFS = @DEFS@ @DEFINES@ -D_REENTRANT LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ +BLESS = @BLESS@ +IDE = @IDE@ +PROJECT = @PROJECT@ +IDEARGS = @IDEARGS@ +SLIRP_SRCS = @SLIRP_SRCS@ ## Files OBJ_DIR = build -GENSRCS = user_strings_unix.h cpudefs.cpp cpuemu.cpp cpustbl.cpp cputbl.h \ - README.txt +GENSRCS = cpudefs.cpp cpuemu.cpp cpustbl.cpp cputbl.h + +# 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 + +# We compile the emulator source outside of Project Builder/XCode +# so that it always picks up appropriate FLAGS from configure. +# This is necessary because that code doesn't use config.h +EMU_OBJ = $(patsubst %.cpp, build/%.o, $(GENEMUS)) +EMU_LIB = libgenemu.a + + +# Symlinks to, or copies of, files in other directories +GENLINK = README.txt INSTALL.txt install-sh \ + Darwin config.guess config.sub semaphore.h \ + sys_unix.cpp timer_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.cpp 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 + 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 + +SLIRP_OBJ = $(patsubst ../slirp/%.c, build/%.o, $(SLIRP_SRCS)) +SLIRP_LIB = libslirp.a + APP = $(OBJ_DIR)/BasiliskII.app +DEPS = $(OBJ_DIR) $(GEN) $(EMU_LIB) $(SLIRP_LIB) $(SRCS) + ## Rules .PHONY: mostlyclean clean distclean depend dep @@ -35,8 +65,8 @@ APP = $(OBJ_DIR)/BasiliskII.app all: $(APP) -ide: $(OBJ_DIR) $(GENSRCS) $(SRCS) - open BasiliskII.pbproj +ide: $(DEPS) + open $(PROJECT) test: $(APP) open $(APP) @@ -45,55 +75,49 @@ $(OBJ_DIR):: @[ -d $(OBJ_DIR) ] || mkdir $(OBJ_DIR) > /dev/null 2>&1 -$(APP): $(OBJ_DIR) $(GENSRCS) $(SRCS) - pbxbuild -buildstyle Deployment -# pbxbuild - -README.txt : ../../README - ln -s $< $@ - -user_strings_unix.h : ../Unix/user_strings_unix.h - ln -s $< $@ +$(APP): $(DEPS) + $(IDE) -buildstyle Deployment $(IDEARGS) \ + && $(BLESS) $(APP)/Contents/MacOS/BasiliskII \ + || rm -fr $(APP) BasiliskII.icns : touch $@ +nowrite.icns : +# ln -sf /System/Library/CoreServices/Finder.app/Contents/Resources/nowrite.icns . + touch $@ + mostlyclean: rm -fr English.lproj/*~* $(OBJ_DIR)/* core* *.core *~ *.bak + rm -fr autom4te.cache config tests vhook clean: mostlyclean - rm -f $(GENSRCS) + rm -f $(SLIRP_LIB) $(EMU_LIB) + rm -f $(GEN) rm -f cpudefs.cpp cputmp*.s cpufast*.s cpustbl.cpp distclean: clean - rm -fr $(OBJ_DIR) - rm -f config.cache config.log config.status config.h - rm -f configure + rm -rf $(OBJ_DIR) + rm -rf autom4te.cache rm -f Makefile + rm -f config.cache config.log config.status config.h config.h.in + rm -f Darwin/lowmem Darwin/pagezero + rm -f $(GENLINK) + rm -f configure + rm -f .DS_Store $(OBJ_DIR)/build68k: ../uae_cpu/build68k.c - $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(LDFLAGS) $< -o $@ + $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $< -o $@ $(OBJ_DIR)/cpuopti: ../uae_cpu/cpuopti.c - $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(LDFLAGS) $< -o $@ + $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) $< -o $@ -#$(OBJ_DIR)/gencpu: cpudefs.cpp ../uae_cpu/gencpu.c ../uae_cpu/readcpu.cpp -# $(CXX) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(CXXFLAGS) $(LDFLAGS) $< -o $@ +$(OBJ_DIR)/gencpu: cpudefs.cpp ../uae_cpu/gencpu.c ../uae_cpu/readcpu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) $(CFLAGS) $(CXXFLAGS) $^ -o $@ -$(OBJ_DIR)/gencpu: $(OBJ_DIR)/gencpu.o $(OBJ_DIR)/readcpu.o $(OBJ_DIR)/cpudefs.o - $(CC) $(LDFLAGS) $^ -o $@ - -$(OBJ_DIR)/gencpu.o : ../uae_cpu/gencpu.c - $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@ - -$(OBJ_DIR)/readcpu.o: ../uae_cpu/readcpu.cpp - $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@ - -$(OBJ_DIR)/cpudefs.o: cpudefs.cpp - $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@ cpudefs.cpp: $(OBJ_DIR)/build68k ../uae_cpu/table68k @@ -103,77 +127,33 @@ cpuemu.cpp cpustbl.cpp cputbl.h: $(OBJ_D $< -$(OBJ_DIR)/cpuemu1.o: cpuemu.cpp - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_1 $(CXXFLAGS) -c $< -o $@ -$(OBJ_DIR)/cpuemu2.o: cpuemu.cpp - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_2 $(CXXFLAGS) -c $< -o $@ -$(OBJ_DIR)/cpuemu3.o: cpuemu.cpp - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_3 $(CXXFLAGS) -c $< -o $@ -$(OBJ_DIR)/cpuemu4.o: cpuemu.cpp - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_4 $(CXXFLAGS) -c $< -o $@ -$(OBJ_DIR)/cpuemu5.o: cpuemu.cpp - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_5 $(CXXFLAGS) -c $< -o $@ -$(OBJ_DIR)/cpuemu6.o: cpuemu.cpp - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_6 $(CXXFLAGS) -c $< -o $@ -$(OBJ_DIR)/cpuemu7.o: cpuemu.cpp - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_7 $(CXXFLAGS) -c $< -o $@ -$(OBJ_DIR)/cpuemu8.o: cpuemu.cpp - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_8 $(CXXFLAGS) -c $< -o $@ - -cpuemu1.cpp: cpuemu.cpp - $(CXX) -E -DPART_1 $< >$@ -cpuemu2.cpp: cpuemu.cpp - $(CXX) -E -DPART_2 $< >$@ -cpuemu3.cpp: cpuemu.cpp - $(CXX) -E -DPART_3 $< >$@ -cpuemu4.cpp: cpuemu.cpp - $(CXX) -E -DPART_4 $< >$@ -cpuemu5.cpp: cpuemu.cpp - $(CXX) -E -DPART_5 $< >$@ -cpuemu6.cpp: cpuemu.cpp - $(CXX) -E -DPART_6 $< >$@ -cpuemu7.cpp: cpuemu.cpp - $(CXX) -E -DPART_7 $< >$@ -cpuemu8.cpp: cpuemu.cpp - $(CXX) -E -DPART_8 $< >$@ - - -cpufast.s: cpuemu.cpp $(OBJ_DIR)/cpuopti - $(CXX) $(CPPFLAGS) $(DEFS) -S $(CXXFLAGS) $< -o cputmp.s - $(OBJ_DIR)/cpuopti $@ || mv cputmp.s $@ - rm -f cputmp.s -cpufast1.s: cpuemu.cpp $(OBJ_DIR)/cpuopti - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_1 -S $(CXXFLAGS) $< -o cputmp1.s - $(OBJ_DIR)/cpuopti $@ || mv cputmp1.s $@ - rm -f cputmp1.s -cpufast2.s: cpuemu.cpp $(OBJ_DIR)/cpuopti - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_2 -S $(CXXFLAGS) $< -o cputmp2.s - $(OBJ_DIR)/cpuopti $@ || mv cputmp2.s $@ - rm -f cputmp2.s -cpufast3.s: cpuemu.cpp $(OBJ_DIR)/cpuopti - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_3 -S $(CXXFLAGS) $< -o cputmp3.s - $(OBJ_DIR)/cpuopti $@ || mv cputmp3.s $@ - rm -f cputmp3.s -cpufast4.s: cpuemu.cpp $(OBJ_DIR)/cpuopti - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_4 -S $(CXXFLAGS) $< -o cputmp4.s - $(OBJ_DIR)/cpuopti $@ || mv cputmp4.s $@ - rm -f cputmp4.s -cpufast5.s: cpuemu.cpp $(OBJ_DIR)/cpuopti - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_5 -S $(CXXFLAGS) $< -o cputmp5.s - $(OBJ_DIR)/cpuopti $@ || mv cputmp5.s $@ - rm -f cputmp5.s -cpufast6.s: cpuemu.cpp $(OBJ_DIR)/cpuopti - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_6 -S $(CXXFLAGS) $< -o cputmp6.s - $(OBJ_DIR)/cpuopti $@ || mv cputmp6.s $@ - rm -f cputmp6.s -cpufast7.s: cpuemu.cpp $(OBJ_DIR)/cpuopti - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_7 -S $(CXXFLAGS) $< -o cputmp7.s - $(OBJ_DIR)/cpuopti $@ || mv cputmp7.s $@ - rm -f cputmp7.s -cpufast8.s: cpuemu.cpp $(OBJ_DIR)/cpuopti - $(CXX) $(CPPFLAGS) $(DEFS) -DPART_8 -S $(CXXFLAGS) $< -o cputmp8.s - $(OBJ_DIR)/cpuopti $@ || mv cputmp8.s $@ - rm -f cputmp8.s +$(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 $@ + +$(EMU_OBJ) : build/%.o : %.cpp + $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@ + +build/newcpu.o : ../uae_cpu/newcpu.cpp + $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c $< -o $@ + +$(EMU_LIB) : $(EMU_OBJ) build/newcpu.o + libtool -static -o $@ $^ + +$(SLIRP_OBJ) : build/%.o : ../slirp/%.c + $(CC) -I../slirp $(CPPFLAGS) $(DEFS) $(CFLAGS) -c $< -o $@ + +$(SLIRP_LIB) : $(SLIRP_OBJ) + libtool -static -o $@ $^ #------------------------------------------------------------------------- # DO NOT DELETE THIS LINE -- make depend depends on it.