#Makefile MUPEN64 for Linux CC ?=gcc CXX ?=g++ CFLAGS +=-DX86 -fexpensive-optimizations -fomit-frame-pointer -funroll-loops -ffast-math -fno-strict-aliasing -Wall CXXFLAGS =$(CFLAGS) GL_PATH =-I/usr/X11R6/include OBJ =main/rom.o \ r4300/r4300.o \ r4300/cop0.o \ r4300/special.o \ r4300/regimm.o \ r4300/exception.o \ memory/tlb.o \ memory/memory.o \ memory/dma.o \ r4300/interupt.o \ r4300/cop1.o \ r4300/tlb.o \ r4300/cop1_w.o \ r4300/cop1_s.o \ r4300/cop1_d.o \ r4300/recomp.o \ memory/pif.o \ r4300/bc.o \ r4300/cop1_l.o \ r4300/pure_interp.o \ r4300/compare_core.o \ main/plugin.o \ main/unzip.o \ main/ioapi.o \ memory/flashram.o \ main/md5.o \ main/mupenIniApi.o \ main/savestates.o \ r4300/profile.o \ main/adler32.o OBJ_X86 =r4300/x86/gr4300.o \ r4300/x86/gcop0.o \ r4300/x86/assemble.o \ r4300/x86/gcop1.o \ r4300/x86/gcop1_s.o \ r4300/x86/gcop1_d.o \ r4300/x86/gtlb.o \ r4300/x86/gregimm.o \ r4300/x86/gspecial.o \ r4300/x86/gcop1_w.o \ r4300/x86/debug.o \ r4300/x86/rjump.o \ r4300/x86/gbc.o \ r4300/x86/gcop1_l.o \ r4300/x86/regcache.o OBJ_VCR =main/vcr.o \ main/vcr_compress.o \ main/vcr_resample.o \ main/gui_gtk/vcrcomp_dialog.o OBJ_GTK_GUI =main/gui_gtk/main_gtk.o \ main/gui_gtk/translate.o \ main/gui_gtk/messagebox.o \ main/gui_gtk/aboutdialog.o \ main/gui_gtk/configdialog.o \ main/gui_gtk/support.o \ main/gui_gtk/rombrowser.o \ main/gui_gtk/romproperties.o \ main/gui_gtk/config.o \ main/gui_gtk/dirbrowser.o OBJ_INPUT =mupen64_input/main.o OBJ_BLIGHT =blight_input/plugin.o \ blight_input/SDL_ttf.o \ blight_input/arial.ttf.o \ blight_input/configdialog_sdl.o \ blight_input/pad.o OBJ_RSPHLE =rsp_hle/main.o \ rsp_hle/disasm.o \ rsp_hle/jpeg.o \ rsp_hle/ucode3.o \ rsp_hle/ucode2.o \ rsp_hle/ucode1.o \ rsp_hle/ucode3mp3.o OBJ_DUMMY =dummy_audio/audio.o OBJ_AUDIO =mupen64_audio/main.o OBJ_JTTL =jttl_audio/main.o OBJ_SOFT_GFX =mupen64_soft_gfx/main.o \ mupen64_soft_gfx/rsp.o \ mupen64_soft_gfx/vi_SDL.o \ mupen64_soft_gfx/vi.o \ mupen64_soft_gfx/rdp.o \ mupen64_soft_gfx/tx.o \ mupen64_soft_gfx/rs.o \ mupen64_soft_gfx/tf.o \ mupen64_soft_gfx/cc.o \ mupen64_soft_gfx/bl.o OBJ_GLN64 =glN64/glN64.o \ glN64/Config_linux.o \ glN64/OpenGL.o \ glN64/N64.o \ glN64/RSP.o \ glN64/VI.o \ glN64/Textures.o \ glN64/FrameBuffer.o \ glN64/Combiner.o \ glN64/gDP.o \ glN64/gSP.o \ glN64/GBI.o \ glN64/DepthBuffer.o \ glN64/CRC.o \ glN64/2xSAI.o \ glN64/NV_register_combiners.o \ glN64/texture_env.o \ glN64/texture_env_combine.o \ glN64/RDP.o \ glN64/F3D.o \ glN64/F3DEX.o \ glN64/F3DEX2.o \ glN64/L3D.o \ glN64/L3DEX.o \ glN64/L3DEX2.o \ glN64/S2DEX.o \ glN64/S2DEX2.o \ glN64/F3DPD.o \ glN64/F3DDKR.o \ glN64/F3DWRUS.o HEADER =main/rom.h \ r4300/r4300.h \ r4300/ops.h \ r4300/macros.h \ r4300/exception.h \ memory/memory.h \ memory/tlb.h \ memory/dma.h \ r4300/interupt.h \ r4300/recomp.h \ memory/pif.h LIB =-lz -lm ifneq ("$(shell grep GTK2 config.h)","\#define GTK2_SUPPORT 1") GTK_FLAGS =`${GTK_CONFIG} --cflags` GTK_LIBS =`${GTK_CONFIG} --libs` GTHREAD_LIBS =`${GTK_CONFIG} --libs gtk gthread` else GTK_FLAGS =`pkg-config gtk+-2.0 --cflags` -D_GTK2 GTK_LIBS =`pkg-config gtk+-2.0 --libs` GTHREAD_LIBS =`pkg-config gthread-2.0 --libs` endif PREFIX =$(shell grep WITH_HOME config.h | cut -d '"' -f 2) SHARE ="$(PREFIX)share/mupen64/" PLUGINS =plugins/mupen64_input.so plugins/blight_input.so plugins/mupen64_hle_rsp_azimer.so plugins/dummyaudio.so plugins/mupen64_audio.so plugins/jttl_audio.so plugins/mupen64_soft_gfx.so plugins/glN64.so all: mupen64 mupen64_nogui $(PLUGINS) r4300/interupt.o: r4300/interupt.c $(CC) $(CFLAGS) `${SDL_CONFIG} --cflags` -c -o $@ $< main/main.o: main/main.c $(CC) $(CFLAGS) -c -o $@ $< `${SDL_CONFIG} --cflags` main/main_gtk.o: main/main_gtk.c $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) `${SDL_CONFIG} --cflags` main/gui_gtk/main_gtk.o: main/gui_gtk/main_gtk.c $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) `${SDL_CONFIG} --cflags` main/gui_gtk/translate.o: main/gui_gtk/translate.c $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) main/gui_gtk/messagebox.o: main/gui_gtk/messagebox.c $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) main/gui_gtk/aboutdialog.o: main/gui_gtk/aboutdialog.c $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) main/gui_gtk/configdialog.o: main/gui_gtk/configdialog.c $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) main/gui_gtk/support.o: main/gui_gtk/support.c $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) main/gui_gtk/rombrowser.o: main/gui_gtk/rombrowser.c $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) main/gui_gtk/romproperties.o: main/gui_gtk/romproperties.c $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) main/gui_gtk/config.o: main/gui_gtk/config.c $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) main/gui_gtk/dirbrowser.o: main/gui_gtk/dirbrowser.c $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) main/gui_gtk/vcrcomp_dialog.o: main/gui_gtk/vcrcomp_dialog.c $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) main/vcr_compress.o: main/vcr_compress.cpp $(CXX) $(CXXFLAGS) -c -o $@ $< `avifile-config --cflags` mupen64_input/main.o: mupen64_input/main.c $(CC) $(CFLAGS) -DUSE_GTK -c -o $@ $< $(GTK_FLAGS) `${SDL_CONFIG} --cflags` blight_input/plugin.o: blight_input/plugin.c $(CC) $(CFLAGS) "-DPACKAGE=\"$(shell grep PACKAGE blight_input/package | cut -d "=" -f 2)\"" "-DVERSION=\"$(shell grep VERSION blight_input/package | cut -d "=" -f 2)\"" `${SDL_CONFIG} --cflags` -DGUI_SDL -c -o $@ $< blight_input/SDL_ttf.o: blight_input/SDL_ttf.c $(CC) $(CFLAGS) `freetype-config --cflags` `${SDL_CONFIG} --cflags` -c -o $@ $< blight_input/arial.ttf.o: blight_input/arial.ttf.c blight_input/arial.ttf.c: blight_input/ttftoh blight_input/ttftoh blight_input/font/arial.ttf mv blight_input/font/arial.ttf.h blight_input/arial.ttf.c blight_input/ttftoh: blight_input/ttftoh.o $(CC) $^ -o $@ blight_input/configdialog_sdl.o: blight_input/configdialog_sdl.c $(CC) $(CFLAGS) "-DPACKAGE=\"$(shell grep PACKAGE blight_input/package | cut -d "=" -f 2)\"" "-DVERSION=\"$(shell grep VERSION blight_input/package | cut -d "=" -f 2)\"" -DGUI_SDL `${SDL_CONFIG} --cflags` -c -o $@ $< blight_input/pad.o: blight_input/pad.c $(CC) $(CFLAGS) -DGUI_SDL -c -o $@ $< rsp_hle/main.o: rsp_hle/main.c $(CC) $(CFLAGS) $(GTK_FLAGS) -DUSE_GTK -c -o $@ $< mupen64_audio/main.o: mupen64_audio/main.c $(CC) $(CFLAGS) $(GTK_FLAGS) -DUSE_GTK -c -o $@ $< jttl_audio/main.o: jttl_audio/main.c $(CC) $(CFLAGS) $(GTK_FLAGS) -DUSE_GTK `${SDL_CONFIG} --cflags` -c -o $@ $< mupen64_soft_gfx/main.o: mupen64_soft_gfx/main.cpp $(CXX) $(CFLAGS) `${SDL_CONFIG} --cflags` -c -o $@ $< mupen64_soft_gfx/vi_SDL.o: mupen64_soft_gfx/vi_SDL.cpp $(CXX) $(CFLAGS) `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/glN64.o: glN64/glN64.cpp $(CXX) $(CFLAGS) -DMAINDEF -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/Config_linux.o: glN64/Config_linux.cpp $(CXX) $(CFLAGS) $(GTK_FLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/OpenGL.o: glN64/OpenGL.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/N64.o: glN64/N64.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM -c -o $@ $< glN64/RSP.o: glN64/RSP.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/VI.o: glN64/VI.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/Textures.o: glN64/Textures.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/FrameBuffer.o: glN64/FrameBuffer.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/Combiner.o: glN64/Combiner.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/gDP.o: glN64/gDP.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/gSP.o: glN64/gSP.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/GBI.o: glN64/GBI.cpp $(CXX) $(CFLAGS) $(GTK_FLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/CRC.o: glN64/CRC.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM -c -o $@ $< glN64/NV_register_combiners.o: glN64/NV_register_combiners.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/texture_env.o: glN64/texture_env.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/texture_env_combine.o: glN64/texture_env_combine.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/RDP.o: glN64/RDP.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/F3D.o: glN64/F3D.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/F3DEX.o: glN64/F3DEX.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/F3DEX2.o: glN64/F3DEX2.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/L3D.o: glN64/L3D.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/L3DEX.o: glN64/L3DEX.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/L3DEX2.o: glN64/L3DEX2.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/S2DEX.o: glN64/S2DEX.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/S2DEX2.o: glN64/S2DEX2.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/F3DPD.o: glN64/F3DPD.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/F3DDKR.o: glN64/F3DDKR.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< glN64/F3DWRUS.o: glN64/F3DWRUS.cpp $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $< mupen64_nogui: $(OBJ) $(OBJ_X86) main/main.o main/gui_gtk/config.o $(CC) $^ $(LIB) -Wl,-export-dynamic -L/usr/X11R6/lib `${SDL_CONFIG} --libs` -lGL -o $@ ifneq ("$(shell grep VCR config.h)","\#define VCR_SUPPORT 1") mupen64: $(OBJ) $(OBJ_X86) $(OBJ_GTK_GUI) $(CC) $^ $(CFLAGS) $(LIB) -Wl,-export-dynamic $(GTK_LIBS) -L/usr/X11R6/lib `${SDL_CONFIG} --libs` -lGL -o $@ else mupen64: $(OBJ) $(OBJ_X86) $(OBJ_GTK_GUI) $(OBJ_VCR) $(CXX) $^ $(CFLAGS) $(LIB) -Wl,-export-dynamic $(GTK_LIBS) `avifile-config --libs` `${SDL_CONFIG} --libs` -L${X11BASE}/lib -lGL -o $@ endif mupen64_oldgui: $(OBJ) $(OBJ_X86) main/main_gtk.o $(CC) $^ $(LIB) -Wl,-export-dynamic $(GTK_LIBS) `${SDL_CONFIG} --libs` -L${X11BASE}/lib -lGL -o $@ plugins/mupen64_input.so: $(OBJ_INPUT) $(CC) $^ -Wl,-Bsymbolic -shared $(GTK_LIBS) -o $@ plugins/blight_input.so: $(OBJ_BLIGHT) $(CC) $^ -Wl,-Bsymbolic -shared `${SDL_CONFIG} --libs` `freetype-config --libs` -o $@ plugins/mupen64_hle_rsp_azimer.so: $(OBJ_RSPHLE) $(CXX) $^ -Wl,-Bsymbolic -shared $(GTK_LIBS) -o $@ plugins/dummyaudio.so: $(OBJ_DUMMY) $(CC) $^ -Wl,-Bsymbolic -shared -o $@ plugins/mupen64_audio.so: $(OBJ_AUDIO) $(CC) $(GTK_LIBS) ${PTHREAD_LIBS} $^ -Wl,-Bsymbolic -shared -o $@ plugins/jttl_audio.so: $(OBJ_JTTL) $(CC) $^ -Wl,-Bsymbolic -shared `${SDL_CONFIG} --libs` $(GTK_LIBS) -o $@ plugins/mupen64_soft_gfx.so: $(OBJ_SOFT_GFX) $(CXX) `${SDL_CONFIG} --libs` $^ -Wl,-Bsymbolic -shared -o $@ plugins/glN64.so: $(OBJ_GLN64) $(CXX) $^ -Wl,-Bsymbolic -shared $(GTK_LIBS) $(GTHREAD_LIBS) `${SDL_CONFIG} --libs` -lGL -o $@ install: cp mupen64 "$(PREFIX)bin" cp mupen64_nogui "$(PREFIX)bin" mkdir "$(SHARE)" | echo cp -rv mupen64.ini "$(SHARE)" cp -rv lang "$(SHARE)" cp -rv plugins "$(SHARE)" cp -rv doc "$(SHARE)" clean: find . -name '*.o' -print0 | xargs -0r rm -f rm mupen64 mupen64_nogui mupen64_dbg plugins/mupen64_input.so blight_input/arial.ttf.c blight_input/ttftoh plugins/blight_input.so plugins/mupen64_hle_rsp_azimer.so plugins/dummyaudio.so plugins/mupen64_audio.so plugins/jttl_audio.so plugins/mupen64_soft_gfx.so plugins/glN64.so clean_o: find . -name '*.o' -print0 | xargs -0r rm -f clean_jed: find . -name '*~' -print0 | xargs -0r rm -f gprof: gprof mupen64_nogui > stat.txt