# Generated automatically from Makefile.in by configure. #ZSNESFX=1 #ZSNESC4=1 #ASMCPU=1 #SPC700ASM=1 #NETPLAY=1 ##UNZIP=1 #JMA=1 #GLIDE=1 #OPENGL=1 #AIDO=1 #GUI=0 #THREAD_SOUND=1 #ASMKREED=1 SDD1_DECOMP=1 #SDD1_VERIFY=0 #DREAMCAST=1 #CHEATS=1 #2XSAI=1 PSP=1 OPTI=1 OPTITEST=1 #USE_PROFILER=1 #UBER_OPTIMIZE=1 LOGGED_BUILD=1 #Fairly good and special-char-safe descriptor of the os being built on. OS=`uname -s -r -m|sed \"s/ /-/g\"|tr \"[A-Z]\" \"[a-z]\"|tr \"/()\" \"___\"` BUILDDIR=. #BUILDDIR=build/$(OS) VPATH = . srcdir = . prefix = /usr/local exec_prefix = ${prefix} ifdef DREAMCAST CPU=sh ASMCPU=1 CHEATS=0 2XSAI=0 else CPU=i386 endif ifdef ZSNESFX FXOBJ=$(CPU)/fxemu2b.o $(CPU)/fxemu2.o $(CPU)/fxemu2c.o $(CPU)/fxtable.o $(CPU)/sfxproc.o $(CPU)/ZSNES.O FXDEFINES=-DZSNES_FX -DEXECUTE_SUPERFX_PER_LINE FXDEPENDS=zsnes_fx FXNO_DEPENDS=c_fx else FXOBJ=fxinst.o fxemu.o fxdbg.o FXDEFINES=-DEXECUTE_SUPERFX_PER_LINE FXDEPENDS=c_fx FXNO_DEPENDS=zsnes_fx endif ifdef ZSNESC4 C4OBJ=$(CPU)/C4.O $(CPU)/zsnesc4.o c4.o C4DEFINES=-DZSNES_C4 C4DEPENDS=zsnes_c4 C4NO_DEPENDS=c_c4 else C4OBJ=c4.o c4emu.o C4DEFINES= C4DEPENDS=c_c4 C4NO_DEPENDS=zsnes_c4 endif ifdef SPC700ASM SOUNDOBJ=spctool/spc700.o spctool/dsp.o spctool.o spctool/soundmod.o SOUNDDEFINES=-DSPCTOOL else SOUNDOBJ=spc700.o soundux.o apu.o SOUNDDEFINES=-DSPC700_C endif ifdef ASMCPU CPUOBJ=$(CPU)/cpuops.o $(CPU)/cpuexec.o $(CPU)/sa1ops.o else CPUOBJ=cpuops.o cpuexec.o sa1cpu.o endif ifdef DREAMCAST PLATFORMOBJ=dc/input.o dc/display.o dc/sound.o \ dc/dc.o dc/menu.o dc/trace.o dc/lcd.o \ dc/lain_blanker.o dc/td.o dc/md5.o else PLATFORMOBJ=unix/unix.o unix/config.o endif ifdef CHEATS CHEATOBJ=cheats.o cheats2.o endif ifndef DREAMCAST SNAPOBJ = snaporig.o snapshot.o SCREENSHOTOBJ = screenshot.o MOVIEOBJ = movie.o endif ifdef 2XSAI ifdef ASMKREED KREEDOBJ=$(CPU)/2XSAIMMX.O $(CPU)/bilinear.o 2xsai.o KREEDDEFINES=-DMMX else KREEDOBJ=2xsai.o endif endif ifdef SDD1_DECOMP SDD1OBJ=sdd1emu.o ifdef SDD1_VERIFY SDD1DEFINES=-DSDD1_DECOMP -DSDD1_VERIFY else SDD1DEFINES=-DSDD1_DECOMP endif endif SPC7110OBJ=spc7110.o OBC1OBJ=obc1.o SETAOBJ=seta.o seta010.o seta011.o seta018.o ifdef PSP C4OBJ=c4.o c4emu.o OBJECTS=$(CPUOBJ) $(SOUNDOBJ) $(FXOBJ) $(C4OBJ) \ cpu.o sa1.o sdd1.o debug.o srtc.o tile.o gfx.o memmap.o clip.o \ dsp1.o ppu.o dma.o data.o globals.o \ $(SPC7110OBJ) $(OBC1OBJ) $(SETAOBJ) $(KREEDOBJ) $(SDD1OBJ) \ $(CHEATOBJ) $(PLATFORMOBJ) $(SNAPOBJ) $(SCREENSHOTOBJ) $(MOVIEOBJ) else OBJECTS=$(CPUOBJ) $(SOUNDOBJ) $(FXOBJ) $(C4OBJ) \ cpu.o sa1.o debug.o sdd1.o tile.o srtc.o gfx.o memmap.o clip.o \ dsp1.o ppu.o dma.o snes9x.o data.o globals.o \ $(SPC7110OBJ) $(OBC1OBJ) $(SETAOBJ) $(KREEDOBJ) $(SDD1OBJ) \ $(CHEATOBJ) $(PLATFORMOBJ) $(SNAPOBJ) $(SCREENSHOTOBJ) $(MOVIEOBJ) endif ifdef NETPLAY OBJECTS += netplay.o server.o NETPLAYDEFINES=-DNETPLAY_SUPPORT SERVER_OBJECTS=server.o endif ifdef UNZIP ZLIB_OBJECTS := zlib/crc32.o zlib/inflate.o zlib/zutil.o zlib/infblock.o zlib/infcodes.o \ zlib/inffast.o zlib/inftrees.o zlib/infutil.o zlib/adler32.o UNZIP_OBJECTS += loadzip.o unzip/unzip.o unzip/explode.o unzip/unreduce.o unzip/unshrink.o $(ZLIB_OBJECTS) UNZIPDEFINES=-DUNZIP_SUPPORT endif ifdef JMA OBJECTS += jma/s9x-jma.o jma/7zlzma.o jma/crc32.o jma/iiostrm.o jma/inbyte.o\ jma/jma.o jma/lzma.o jma/lzmadec.o jma/winout.o JMADEFINES=-DJMA_SUPPORT -fexceptions endif ifdef THREAD_SOUND CPUDEFINES += -DUSE_THREADS EXTRALIBS += -lpthread endif ifdef GLIDE GLIDEOBJS = unix/glide.o GLIDEDEFINES = -DUSE_GLIDE -I/usr/include/glide GLIDELIBS = -lglide2x endif ifdef OPENGL OPENGLOBJS = unix/opengl.o OPENGLDEFINES = -DUSE_OPENGL OPENGLLIBS = -lGL -lGLU -ldl endif ifdef AIDO AIDOOBJS = unix/aido.o AIDODEFINES = -DUSE_AIDO endif JOYDEFINES = ifdef DREAMCAST CXX = sh-elf-c++ -fno-rtti CC = sh-elf-gcc NASM = fail GASM = fail else CXX = c++ -fno-rtti CC = gcc NASM = not_found GASM = c++ endif ifdef DREAMCAST INCLUDES = -I$(srcdir)/dc DEFS = -DDC else INCLUDES = -INONE DEFS = -DMITSHM endif #INCLUDES += -I$(srcdir) -I$(srcdir)/unzip INCLUDES += -I$(srcdir) ifdef DREAMCAST OPTIMISE=-O4 -ffreestanding -ffast-math -fschedule-insns2 -fomit-frame-pointer -fno-inline-functions -fno-defer-pop -fforce-addr -fstrict-aliasing -funroll-loops -fdelete-null-pointer-checks -fno-exceptions CPUFLAGS=-ml -m4-single-only else #OPTIMISE = -O2 -fomit-frame-pointer -fno-exceptions -Wall -W -pedantic -Wno-unused-parameter -pipe OPTIMISE=-O4 -ffreestanding -ffast-math -fschedule-insns2 -fomit-frame-pointer -fno-inline-functions -fno-defer-pop -fforce-addr -fstrict-aliasing -funroll-loops -fdelete-null-pointer-checks -fno-exceptions endif ifdef PSP CXX = psp-g++ CC = psp-gcc NASM = fail GASM = fail INCLUDES += -I$(srcdir)/psp -I`psp-config -p`/include DEFS = -DPSP -DPSP_NOTUSE -DUSE_SCEGU ifdef OPTI DEFS += -DOPTI endif CPUFLAGS = -mno-fp-exceptions -mno-check-zero-division OPTIMISE = -O3 -ffast-math -floop-optimize2 -fbranch-target-load-optimize2 \ -ftree-vectorize -fno-inline-functions -fforce-addr \ -funroll-loops ifndef DEBUG OPTIMISE += -fomit-frame-pointer endif ifdef UBER_OPTIMIZE OPTIMISE += -Wdisabled-optimization -Wextra -Wstrict-aliasing=2 #-Wcast-align OPTIMISE += -Wpacked -Wpadded #-Wunreachable-code endif OPTIMISE_C= $(OPTIMISE) OPTIMISE_CXX=-fno-exceptions -fno-rtti $(OPTIMISE) ifdef CPU_OPTI PSP_OBJECTS=globals.o cpuexec.o sa1cpu.o spc700.o soundux.o apu.o fxinst.o fxemu.o c4.o c4emu.o cpu.o sa1.o tile.o srtc.o gfx.o memmap.o clip.o dsp1.o ppu.o dma.o data.o obc1.o sdd1.o sdd1emu.o psp/config.o psp/psp.o psp/pg.o psp/filer.o snapshot.o $(UNZIP_OBJECTS) else PSP_OBJECTS=$(OBJECTS) $(UNZIP_OBJECTS) endif PLATFORMOBJ = psp/psp.o psp/config.o psp/pg.o psp/filer.o psp/scegu.o SNAPOBJ = snapshot.o SCREENSHOTOBJ = MOVIEOBJ = # Allow Yoshi's Island to run (even though it runs REALLY slow) DEFS += -DDETECT_NASTY_FX_INTERLEAVE endif DEFS += \ -DCPU_SHUTDOWN \ -DSPC700_SHUTDOWN \ $(FXDEFINES) \ $(C4DEFINES) \ $(CPUDEFINES) \ $(SOUNDDEFINES) \ $(NETPLAYDEFINES) \ $(UNZIPDEFINES) \ $(JMADEFINES) \ $(GLIDEDEFINES) \ $(OPENGLDEFINES) \ $(AIDODEFINES) \ $(KREEDDEFINES) \ $(SDD1DEFINES) \ $(JOYDEFINES) \ -DNO_INLINE_SET_GET -DNOASM #-DNO_INLINE_SET_GET -DNOASM '-DACCEPT_SIZE_T=socklen_t' #-DNO_INLINE_SET_GET -DNOASM '-DACCEPT_SIZE_T=socklen_t' -DNOSOUND #-DNO_INLINE_SET_GET -DNOASM -DHAVE_STRINGS_H '-DACCEPT_SIZE_T=socklen_t' -DNOSOUND #-DOLD_COLOUR_BLENDING #-DSOUND #-DDEBUGGER #-DNO_INLINE_SET_GET #-DVAR_CYCLES #-DCPU_SHUTDOWN #-DSPC700_SHUTDOWN CFLAGS = $(OPTIMISE_C) $(CPUFLAGS) $(INCLUDES) $(DEFS) CXXFLAGS = $(OPTIMISE_CXX) $(CPUFLAGS) $(INCLUDES) $(DEFS) ifdef USE_PROFILER DEFS += -DUSE_PROFILER -DPROFILE_TILES -DPROFILE_GFX #DEFS += -DUSE_PROFILER -DPROFILE_HW endif .SUFFIXES: .log .o .cpp .c .cc .h .m .i .S .asm .obj .O .CPP .C .ASM #FIXME: Why is this set statically? #LDLIBS = -L/usr/X11R6/lib # -L../zlib LDLIBS = psp/unziplib.a -L`psp-config -p`/lib \ -lpspaudio -lpspctrl -lpsppower -lpspdebug -lpspgu -lpspge -lpspdisplay \ -lpsplibc -lpspuser -lpspkernel -lm #-lz ifdef PROFILE #LDLIBS += -lgcov endif ifdef GLIDE SNES9XBIN=gsnes9x else ifdef OPENGL SNES9XBIN=osnes9x else SNES9XBIN=snes9x endif endif ifdef LOGGED_BUILD ECHO=echo TAIL=tail TAIL_LOG=$(TAIL) LOG_COMPILE=>> $(COMPILE_LOG) 2>&1 LOG_COMPILE_EXECUTE=$(LOG_COMPILE) && exit 0 || \ $(TAIL_LOG) $(COMPILE_LOG) && \ echo -e "\n\n *** See $(COMPILE_LOG) for more details... ***\n" && \ exit 1 LOG_LINK=>> $(LINK_LOG) 2>&1 LOG_LINK_EXECUTE=$(LOG_LINK) && exit 0 || \ $(TAIL_LOG) $(LINK_LOG) && \ echo -e "\n\n *** See $(LINK_LOG) for more details... ***\n" && \ exit 1 COMPILE_LOG=compile.log LINK_LOG=link.log LOG_FILES=$(COMPILE_LOG) $(LINK_LOG) endif all: $(LOG_FILES) $(SNES9XBIN) EBOOT.PBP #Makefile.psp: configure Makefile.in # @echo "Makefile is older than configure or in-file. Run configure or touch Makefile." # exit 1 #configure: configure.in # @echo "configure is older than in-file. Run autoconf or touch configure." # exit 1 #ggisnes9x kxploit: all kxploit EBOOT.PBP SNES9X /mnt/PSP/PSP/GAME #FIXME: Make this more portable and add install.sh, maybe add strip install: all install -D $(SNES9XBIN) "$(exec_prefix)/bin/$(SNES9XBIN)" directories: @test -d $(CPU) || mkdir $(CPU) @test -d unix || mkdir unix @test -d unzip || mkdir unzip @test -d jma || mkdir jma snes9x: $(PSP_OBJECTS) psp-gcc -o $@ $(PSP_OBJECTS) $(LDLIBS) $(EXTRALIBS) EBOOT.PBP: $(SNES9XBIN) PARAM.SFO psp-strip $(SNES9XBIN) -o $(SNES9XBIN)_stripped pack-pbp $@ PARAM.SFO ICON0.PNG NULL NULL NULL NULL $(SNES9XBIN)_stripped NULL -rm -f $(SNES9XBIN)_stripped PARAM.SFO: mksfo "uo_Snes9x 0.02pd2" $@ #snes9x: $(OBJECTS) unix/x11.o $(AIDOOBJS) # $(CXX) $(INCLUDES) -o $@ $(OBJECTS) $(AIDOOBJS) $(GLIDEOBJS) $(OPENGLOBJS) unix/x11.o $(LDLIBS) $(GLIDELIBS) $(OPENGLLIBS) -lXext -lX11 $(EXTRALIBS) -lm ssnes9x: $(OBJECTS) unix/svga.o $(CXX) $(INCLUDES) -o $@ $(OBJECTS) $(GLIDEOBJS) unix/svga.o $(LDLIBS) $(GLIDELIBS) -lvga -lvgagl $(EXTRALIBS) -lm gsnes9x: $(OBJECTS) $(GLIDEOBJS) $(CXX) $(INCLUDES) -o $@ $(OBJECTS) $(GLIDEOBJS) $(LDLIBS) -lglide $(EXTRALIBS) -lm ggisnes9x: $(OBJECTS) unix/ggi.o $(CXX) $(INCLUDES) -o $@ $(OBJECTS) unix/ggi.o $(LDLIBS) -lggi $(EXTRALIBS) -lm osnes9x: $(OBJECTS) unix/x11.o $(OPENGLOBJS) $(CXX) $(INCLUDES) -o $@ $(OBJECTS) unix/x11.o $(OPENGLOBJS) $(LDLIBS) $(OPENGLLIBS) -lXext -lX11 $(EXTRALIBS) -lm s9xserver: $(SERVER_OBJECTS) $(CXX) $(INCLUDES) -o $@ $(SERVER_OBJECTS) $(LOG_FILES): @rm -f $(LOG_FILES) .cpp.o: ifdef LOGGED_BUILD @$(ECHO) -e "--------------------------------------------------------------------------------\n" $(LOG_COMPILE) @$(ECHO) -e " *** $< *** \n\n" $(LOG_COMPILE) @$(ECHO) -e " [$(CXX) $(INCLUDES) -c $(CXXFLAGS) $(srcdir)/$*.cpp -o $@]\n\n" $(LOG_COMPILE) @$(ECHO) " CXX $<"; $(CXX) $(INCLUDES) -c $(CXXFLAGS) $(srcdir)/$*.cpp -o $@ $(LOG_COMPILE_EXECUTE) @$(ECHO) -e "\n\n *** $< *** \n" $(LOG_COMPILE) @$(ECHO) -e "--------------------------------------------------------------------------------\n" $(LOG_COMPILE) else $(CXX) $(INCLUDES) -c $(CXXFLAGS) $(srcdir)/$*.cpp -o $@ endif .c.o: ifdef LOGGED_BUILD @$(ECHO) -e "--------------------------------------------------------------------------------\n" $(LOG_COMPILE) @$(ECHO) -e " *** $< *** \n\n" $(LOG_COMPILE) @$(ECHO) -e " [$(CC) $(INCLUDES) -c $(CFLAGS) $(srcdir)/$*.c -o $@]\n\n" $(LOG_COMPILE) @$(ECHO) " CC $<"; $(CC) $(INCLUDES) -c $(CFLAGS) $(srcdir)/$*.c -o $@ $(LOG_COMPILE_EXECUTE) @$(ECHO) -e "\n\n *** $< *** \n" $(LOG_COMPILE) @$(ECHO) -e "--------------------------------------------------------------------------------\n" $(LOG_COMPILE) else $(CC) $(INCLUDES) -c $(CFLAGS) $(srcdir)/$*.c -o $@ endif .cpp.S: $(GASM) $(INCLUDES) -S $(CXXFLAGS) $(srcdir)/$*.cpp -o $@ .cpp.i: $(GASM) $(INCLUDES) -E $(CXXFLAGS) $(srcdir)/$*.cpp -o $@ .S.o: $(GASM) $(INCLUDES) -c $(CFLAGS) $(srcdir)/$*.S -o $@ .S.i: $(GASM) $(INCLUDES) -c -E $(CFLAGS) $(srcdir)/$*.S -o $@ #.s.o: # @echo Compiling $*.s # sh-elf-as -little $(srcdir)/$*.s -o $@ .s.o: @echo Compiling $*.s ee-gcc $(srcdir)/$*.s -march=r4000 -mgp32 -c -xassembler -O -o $@ .asm.o: $(NASM) -f elf $(FXDEFINES) -I$(srcdir)/ -I$(srcdir)/$(CPU)/ -o $@ $(srcdir)/$*.asm .obj.o: cp $*.obj $*.o .CPP.O: $(CXX) $(INCLUDES) -c $(CXXFLAGS) -x c++ $(srcdir)/$*.CPP -o $@ .C.O: $(CC) $(INCLUDES) -c $(CFLAGS) $(srcdir)/$*.C -o $@ .ASM.O: $(NASM) -f elf $(FXDEFINES) -I$(srcdir)/ -I$(srcdir)/$(CPU)/ $(srcdir)/$*.ASM -o $@ unix/moc_snes9x_gui.cpp: unix/snes9x_gui.h $(MOC) unix/snes9x_gui.h -o $@ clean: -rm -f $(SNES9XBIN) EBOOT.PBP PARAM.SFO $(OBJECTS) $(CPU)/offsets.h offsets.o unix/svga.o unix/aido.o unix/x11.o unix/ggi.o unix/xf86.o unix/glide.o $(UNZIP_OBJECTS) $(LOG_FILES) #release: CFLAGS += -DNO_DEBUGGER _bin-package: RELNR=`grep "#define VERSION" snes9x.h | sed -e 's/"//g' | awk '{ print $$3 }'` && \ echo $$RELNR && \ RELNAME=snes9x-$${RELNR} && export RELNAME && \ test \! -f $${RELNAME}.tar.gz && \ DISTDIR=disttmp/$${RELNAME}/ && \ rm -rf disttmp && \ mkdir disttmp && \ mkdir $${DISTDIR} && \ cp snes9x $${DISTDIR} && \ cp config.info hardware.txt problems.txt changes.txt ../faqs.txt ../readme.txt ../readme.unix $${DISTDIR} && \ (cd disttmp && tar cvf - $${RELNAME}) | gzip -c > $${RELNAME}.tar.gz &&\ rm -rf disttmp #FIXME: Should possibly have clean, but not in xenofarm build bin-release: snes9x _bin-package #FIXME: Intelligent messages when bailing out. #FIXME: See those ls:s? Don't look to closely at the statements... _src-package: RELNR=`grep "#define VERSION" snes9x.h | sed -e 's/"//g' | awk '{ print $$3 }'` && \ echo $$RELNR && \ RELNAME=snes9x-$${RELNR}-src && \ test \! -f $${RELNAME}.tar.gz && \ test \! `ls *~` && \ test \! `ls *.o` && \ test \! -f snes9x && \ export RELNR && export RELNAME && \ (cd .. && PWD=`pwd` && SNESDIR=`basename $$PWD` && cd .. && \ DISTDIR=disttmp/$${RELNAME} && \ rm -rf disttmp && \ mkdir disttmp && \ cp -r $${SNESDIR} $${DISTDIR} && \ rm -f $${DISTDIR}/snes9x/config.* 2>/dev/null && \ rm -f $${DISTDIR}/snes9x/conftezt.out.* 2>/dev/null && \ rm -rf $${DISTDIR}/snes9x/autom4te.cache 2>/dev/null && \ rm $${DISTDIR}/snes9x/Makefile && \ find disttmp -name CVS -type f -exec rm "{}" \; && \ find disttmp -name CVS -type d -exec rm "{}" \; && \ (cd disttmp && tar cvf - $${RELNAME}) | gzip -c > $${RELNAME}.tar.gz && \ mv $${RELNAME}.tar.gz $${SNESDIR}/snes9x/ ) && \ rm -rf disttmp #Requires: # 1. Prestine checkout # 2. `autoconf` # 3. `./configure` src-release: depend _src-package xenofarm: ./xenofarm.sh cd build/xenofarm && tar cf - . > ../../../xenofarm_result.tar gzip -f9 ../xenofarm_result.tar # And now for the impressive testsuite: verify: snes9x ./snes9x --selftest #FIXME: Make a auto-self-reference. dependencies: @echo "Calculating dependencies..." @$(CXX) $(CXXFLAGS) -MM -MG \ `find . '(' -name '*.c' -o -name '*.cpp' -o -name '*.S' ')' -print -o -name msdos -prune` \ | sed -e 's@^[^ :]*: *\([^ ]*/\)[^ /]*@\1&@' \ >dependencies #NOTE: Not VPATH safe TAGS: *.c *.h psp/*.c psp/*.h psp/*.cpp unzip/*.c unzip/*.h -etags *.c *.h psp/*.c psp/*.h psp/*.cpp unzip/*.c unzip/*.h -include dependencies